Besoin d'aide pour ce code

Signaler
Messages postés
1
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
5 juin 2007
-
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
-
#include<stdio.h>
#include<conio.h>
 struct eleve
   { char nom[20];
     char prenom[30];
     char sexe[2];
     int age;
      }
      feleve;
   int main ()
    {int Age;  FILE * pf;
     char nome, prenome, sexee;
     printf("Merci de commencer la saisie\n");
     pf=fopen("C:\\DEVOIR\\eleve.txt","a+");
      if (pf==NULL)
       {
     printf("Il y'a une erreur a l'ouverture du fichier\n");
     }
     else
     clrscr();
      printf("Merci de saisir votre age ou 0 pour Quitter\n");
      scanf("%d",&Age);
       while (Age!=0)
        {
         feleve.age=Age;
         printf("Merci de saisir votre Nom\n");
         scanf("%s",&nome);
         sprintf(feleve.nom,"%s",nome);
         printf("Merci de saisir votre prenom\n");
         scanf("%s",&prenome);
         sprintf(feleve.prenom,"%s",prenome);
         printf("merci d'indiquer votre sexe\n");
         scanf("%s",&sexee);
         sprintf(feleve.sexe,"%s",sexee);
         fwrite(&feleve,sizeof(feleve),1,pf);
         clrscr();
         printf("saisissez votre age ou 0 pour quyitter\n");
         scanf("%d",&Age);
         }
         }
         fclose(pf);

         return 0:
         }

J'ai un probléme pour afficher le contenu du fichier j'ai utilisé la fonction fread mais le compilateur m'indique des erreurs Merci de m'aider

2 réponses

Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
primo, aucune variable n'est initialisée et aucun retour de scanf vérifié et qui veut dire que les valeurs fournies aux printf les feront planter si elle sont invalides...
Et comme tu déclare des variable de type char que tu passe aux scanf et printf comme des char* (%s), cela équivaut à se mitrailler soi même au M16
de plsu pour copier une chaine de caractères, utilise un strpcy ou strncpy au lieu d'unn sprintf...

Ma foi, tout le code est revoir. Commence par déclarer test du bon type, vérifier tes retorus de scanf...
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
J'ai mal au doigts....

Commence par déclarer test du bon type, vérifier tes retorus de scanf...

Plutôt ==> Commence par déclarer tes variables du bon type et vérifier tes retours de scanf...