Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 37

les fichiers



  1. #1
    dalida1111

    les fichiers


    ------

    Bonsoir tout le monde
    j'ai besoin de votre aide s il vous plait , je viens de faire un programme qui rempli un fichier par les informations d un etudiant sous la forme nom : prenom : cne : age
    faut ecrire :
    une fonction qui saisir les données d un etudiant
    une fonction qui afficher ...
    une fonction qui recherche un etudiant par cne
    une fonction qui supprime un etudiant par cne
    programme proncipal
     Cliquez pour afficher


    au niveau de la fonction saisir () et quitter il n y a pas de probleme mais au niveau de la fonction afficher () il affiche les resultats que j ai tapé mais il m ajoute une ecriture bizzar
    meme chose pour la fonction rechercher ca donne toujours "ETUDIANT INTROUVALBE"
    pourriez vous m aider ?!
    merci d avance de m avoir aidé

    -----
    Dernière modification par JPL ; 28/01/2012 à 23h16. Motif: Ajout de la balise Code pour garder l'indentation

  2. Publicité
  3. #2
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    Bonsoir tout le monde
    j'ai besoin de votre aide s il vous plait , je viens de faire un programme qui rempli un fichier par les informations d un etudiant sous la forme nom : prenom : cne : age
    faut ecrire :
    une fonction qui saisir les données d un etudiant
    une fonction qui afficher ...
    une fonction qui recherche un etudiant par cne
    une fonction qui supprime un etudiant par cne
    programme proncipal

    au niveau de la fonction saisir () et quitter il n y a pas de probleme mais au niveau de la fonction afficher () il affiche les resultats que j ai tapé mais il m ajoute une ecriture bizzar
    meme chose pour la fonction rechercher ca donne toujours "ETUDIANT INTROUVALBE"
    pourriez vous m aider ?!
    merci d avance de m avoir aidé
    Hello,

    tu es donc en mode debug
    Il y a plusieurs erreurs dans ton programme. Je vais t'aider à le debugger pas à pas.
    Ensuite nous pourrons discuter de quelques techniques qui peuvent non seulement améliorer ton programme mais t'être utiles par la suite (entre autre l'utilisation de structures, la modularisation, compilation séparée, etc).

    Point positif : Tu utilises des fonctions

    On va commencer au début.
    Lance ton programme, avec celui-ci crée le fichier avec 2 étudiants Alice et Bob. En dehors de ton programme affiche le fichier créé.
    Que remarques-tu ?
    D'où peut provenir cette erreur ?

  4. #3
    dalida1111

    Re : les fichiers

    rebonsoir
    merci de m avoir répondue
    j'ai fait le programme que vous m avez demandé mais je ne vosi pas bien l erreur

     Cliquez pour afficher
    Dernière modification par JPL ; 28/01/2012 à 23h17. Motif: Ajout de la balise Code pour garder l'indentation

  5. #4
    dalida1111

    Re : les fichiers

    l erreur se trouve dans la phase d affichage

  6. A voir en vidéo sur Futura
  7. #5
    photon57

    Re : les fichiers

    Non, utilise ton programme (le premier, celui que nous debuggons) pour créer un fichier etudiant.txt. Ajoute seulement 2 étudiants et regarde ce que ton programme fait en ouvrant le fichier créé avec un autre éditeur.

    Que remarques-tu ?

  8. #6
    dalida1111

    Re : les fichiers

    ah oui ca affiche juste les résultats du deuxiéme etudiant !!

  9. Publicité
  10. #7
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    l erreur se trouve dans la phase d affichage
    En effet, il y a encore un autre problème dans la fonction d'affichage. Mais avant de foncer sur celle-ci, il faut d'abord vérifier que tu crées correctement le fichier (si ton fichier est pourri, ta fonction d'affichage pourra être bonne mais ne fonctionnera pas).

  11. #8
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    ah oui ca affiche juste les résultats du deuxiéme etudiant !!
    Bah oui ... le fichier ne contient que le dernier étudiant entré ... d'où peut provenir l'erreur ?

  12. #9
    dalida1111

    Re : les fichiers

    peut etre le fichier ne s ouvre pas correctement !!

  13. #10
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    peut etre le fichier ne s ouvre pas correctement !!
    Je te mets sur la voie ... si tu tapes les données pour plusieurs étudiants, que seul le dernier est mis dans le fichier alors :

    *soit tu écrases les données tout le temps
    *soit tu n'écris que le dernier entré
    *soit ...

    le code incriminé est :
    Code:
    //teste d ouverture du fichier en ecriture
    //si le fichier ne s ouvre pas 
        if (fichier == NULL)
    //on affiche un message d erreur 
        {
            printf(" impossible d ouvrir le fichier ");
            exit(0);
        } else {
            printf
                ("******\t\tveuillez donner le nombre des etudiants****** :");
            scanf("%d", &n);
            for (i = 0; i < n; i++) {
                printf("******\t\tle nom de l etudiant est ******:\n");
                scanf("%s", nom);
                printf("*******\t\tle prenom de l etudiant est ******:\n");
                scanf("%s", prenom);
                printf("*******\t\tle cne de l etudiant est *******:\n");
                scanf("%d", &cne);
                printf("*******\t\tl age de l etudiant est *******:\n");
                scanf("%d", &age);
    
    
            }
            fprintf(fichier, "%s:%s:%d:%d", nom, prenom, cne, age);
        }
        fclose(fichier);
    À ton avis quel est le problème ici ?

  14. #11
    dalida1111

    Re : les fichiers

    fprintf() ne fait pas partie de la boucle for

  15. #12
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    fprintf() ne fait pas partie de la boucle for
    Bingo !
    Modifie ton programme pour mettre le fprintf dans la boucle for pour qu'à chaque étudiant entré les données soient écrites dans le fichier.

    Attention : si tu ne rajoutes pas un \n en fin de ligne tu risques de te retrouver avec un fichier du genre :

    Code:
    alice:alice:1:29bob:bob:2:20
    au lieu de :

    Code:
    alice:alice:1:29
    bob:bob:2:20

  16. Publicité
  17. #13
    dalida1111

    Re : les fichiers

    j ajoute \n à la fin de printf ()
    printf("\n%s : %s : %d : %d\n",nom,prenom,cne,age);
    mais ca donne rien , toujours meme erreur
    ca affiche les resultats mais il m ajoute d autres resultats sans passer à la ligne!!!!je me noie ...

  18. #14
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    j ajoute \n à la fin de printf ()

    mais ca donne rien , toujours meme erreur
    ca affiche les resultats mais il m ajoute d autres resultats sans passer à la ligne!!!!je me noie ...
    Respire
    Il faut vraiment y aller pas à pas, la première étape consistant à s'assurer que le fichier produit est correct. Le reste viendra par la suite.

    Avec quel programme as-tu ouvert ton fichier ? Il est important que tu n'utilises pas ton programme mais un éditeur à part.

    Un \n suffira

  19. #15
    dalida1111

    Re : les fichiers

    de meme pour les resultats de la fonction rechercher () ca affiche rien , juste le programme me demande de donner le cne de l etudiant qu on cherche !!

  20. #16
    photon57

    Re : les fichiers

    Tu pourras aussi me préciser quel est ton environnement de dev stp (OS, IDE, compilateur, ...) ?

  21. #17
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    de meme pour les resultats de la fonction rechercher () ca affiche rien , juste le programme me demande de donner le cne de l etudiant qu on cherche !!
    Calme toi, n'essaye pas d'aller trop vite. Pas à pas en respirant
    Premier pas : s'assurer que le fichier produit est correct.
    As-tu fait ce que je t'ai demandé ?

  22. #18
    dalida1111

    Re : les fichiers

    j'ai copié le programme dans une nouvelle page , j'ai ajouté \n aprés printf () mais toujours les memes erreurs

  23. Publicité
  24. #19
    photon57

    Re : les fichiers

    Ouvre le fichier etudiant.txt ; que vois-tu ? Peux-tu me le copier dans un message ?

  25. #20
    dalida1111

    Re : les fichiers

    ca donne
    zineb:nour:124:24rana:afasy:14 7:25 : (un dessin) 195777 6
    Dernière modification par dalida1111 ; 28/01/2012 à 19h38.

  26. #21
    photon57

    Re : les fichiers

    Avec quel éditeur as-tu ouvert le fichier ?
    Es-tu sous windows ?

  27. #22
    dalida1111

    Re : les fichiers

    OUII sous windows

  28. #23
    photon57

    Re : les fichiers

    Et avec quel éditeur as=tu ouvert ton fichier etudiant.txt ?

  29. #24
    dalida1111

    Re : les fichiers

    un editeur de texte

  30. Publicité
  31. #25
    photon57

    Re : les fichiers

    notepad ?
    wordpad ?
    un autre ?

  32. #26
    dalida1111

    Re : les fichiers

    avec wordpad

  33. #27
    photon57

    Re : les fichiers

    Citation Envoyé par dalida1111 Voir le message
    un editeur de texte
    Je vais t'expliquer pourquoi c'est important.

    En gros, très gros, le monde est partagé en 2 concernant les fichiers textes en ascii :

    * le monde unix où le retour à la ligne est indiqué par un caractère le fameux '\n' de valeur 10
    * le monde windows où le retour à la ligne est indiqué par deux caractère "\r\n"de valeurs 13,10

    Si tu as un fichier texte de type unix, windows (notepad entre autre) ne passera pas à la ligne il manque le \r.
    Wordpad n'a pas ce problème (en général).

    Tu utilises wordpad; peux tu reposter ton code modifié stp ?

  34. #28
    dalida1111

    Re : les fichiers

    merci pour l information
     Cliquez pour afficher

  35. #29
    photon57

    Re : les fichiers

    Tu peux me dire quelles modifications tu as apporté à :

    Code:
    void ajouter()
    {
        FILE *fichier;
        char nom[20], prenom[20];
        int n, i, age, cne;
        fichier = fopen("Livres.txt", "a+ ");
        if (fichier == NULL) {
            printf("\aERREUR: Impossible d'ouvrir " "le fichier: .\n");
        }
        printf("******\t\tveuillez donner le nombre des etudiants****** :");
        scanf("%d", &n);
        for (i = 0; i < n; i++) {
            printf("******\t\tle nom de l etudiant est ******:\n");
            scanf("%s", nom);
            printf("*******\t\tle prenom de l etudiant est ******:\n");
            scanf("%s", prenom);
            printf("*******\t\tle cne de l etudiant est *******:\n");
            scanf("%d", &cne);
            printf("*******\t\tl age de l etudiant est *******:\n");
            scanf("%d", &age);
    
    
        }
        fprintf(fichier, "\n%s:%s:%d:% d\n", nom, prenom, cne, age);
        fclose(fichier);
    }

  36. #30
    dalida1111

    Re : les fichiers

    le a+ pour le mode ajouter !
    Ay faut aussi ajouter fprintf () dans la boucle for

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. comment les anti-virus désinfectent les fichiers système?
    Par roger44 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 21/09/2011, 16h53
  2. Impossible recevoir les gros fichiers avec les logiciels prévus
    Par roro123 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 29/05/2009, 15h09
  3. Les fichiers en .avi ...
    Par Kalas_BK dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 1
    Dernier message: 15/03/2008, 11h24
  4. les fichiers en C
    Par bilou2007 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 18/02/2007, 16h53
  5. P2P et licence globale : les députés légalisent les échanges de fichiers ?
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 4
    Dernier message: 24/12/2005, 08h43