Tom's Guide > Forum > Programmation > Récupération de données fread Langage C

Récupération de données fread Langage C

Forum Programmation : Récupération de données fread Langage C

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

J'ai un petit problème sur un programme C :
j'écris des données sur un fichier binaire avec fwrite, juste avant de fermer l'application, et je dois les récupérer juste après ouverture du programme. Les données sont lues du fichier mais le printf les affiche bizaremment.
Le but est d'obtenir une liste chainée d'auteurs de livres, après lecture du fichier, en allouant un maillon pour chaque auteur trouvé.
Voilà le code :

fileAuts=fopen("fichAuteurs","ab+" );
if(fileAuts == NULL)
printf("Probleme d'ouverture du fichier\n" );
else
{ while(fread(&idAuteur,sizeof(int),1,fileAuts)!=0)
{ fread(&nomAuteur,sizeof(char*),1,fileAuts);
printf("DONNEES DU FICHIER D'AUTEURS\n" );
printf("%d %s\n",idAuteur,nomAuteur);

/*Construction d'un maillon de liste chainée*/
}
}

En l'exécutant, le programme plante et m'affiche un truc du genre : 4025412255 inco (au lieu de inconnus :D).

A votre avis, quel est le problème svp ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

ca depend comment tu écrit les données, mais déjà:
1.

Code :
  1. fread(&nomAuteur,sizeof(char*),1,fileAuts);


ne lira qu'un caractère
2. il faut utiliser feof() pour détecter la fin du fichier
3. fread lit exactement le nombre d'éléments de taille (size) données, il ne fait pas de distinction entre chaine, entier, etc...
si tu veux lire des chaines de caractères, il vaut mieux utiliser fgets, ou alors les stocker avec une taille fixe

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25
Tom's Guide > Forum > Programmation > Récupération de données fread Langage C
Aller à :

Il y a 2529 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens