Bonjour,
j'ai créé une fonction pour écrire une liste chainée dans un fichier.txt. Tout fonctionne, mais une fois la chaine écrite les informations contenues semble perdue, des caractères étrange remplace les données. Je ne comprends pas, car la fonction reçoit en argument la tête, mais pas un pointer, elle ne peut donc pas modifier la tête .. n'est-ce pas...?
voici le code de la fonction :
Merci, bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 void saveFaits(char* fichier_fait, S_FAIT* liste_des_faits){ FILE *pt_fichier=NULL; char *ligne_fait=NULL; S_FAIT* courant=liste_des_faits; // ouverture du fichier en ecriture de texte if ( (pt_fichier=fopen(fichier_fait,"w"))){ // boucle sur chaque fait while(courant != NULL) { // recup du fait au format texte ligne_fait = courant->Data_fait; // ecriture du fait dans le fichier ouvert fprintf(pt_fichier,ligne_fait); fprintf(pt_fichier,"\n"); // liberation de la memoire allouee au fait free(ligne_fait); // saut sur le fait suivant courant = courant->suiv; } // fermeture du fichier fclose(pt_fichier); printf("%s",liste_des_faits->Data_fait); } }
Partager