Besoin d'aide pour ce code

cs_pacolo Messages postés 1 Date d'inscription lundi 23 octobre 2006 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 11:13
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 - 5 juin 2007 à 11:31
#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

cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
5 juin 2007 à 11:30
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...
0
cs_vicenzo Messages postés 178 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 25 août 2010 1
5 juin 2007 à 11:31
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...
0
Rejoignez-nous