Bonjour,
J'enregistre dans un fichier une liste chainee d'elements.
J'écris dans le fichier élément par élément, cela se passe bien.
Voici de quoi se compose ma liste :
Le code pour charger une liste a partir de mon fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct car { personne pers; //personne est une structure struct car *suivant; }; typedef struct car carnet; typedef carnet *liste;
Voila mon probleme : Ca marche bien (bon ce n'est pas ca mon probleme
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 liste car; liste temp, suivant; FILE *pf; pf=fopen("carnet.dat", "r"); if(pf != NULL) { car = (liste) malloc(sizeof(carnet)); fread(&car->pers, sizeof(carnet), 1, pf); temp=car; while(!feof(pf)) { suivant = (liste) malloc(sizeof(carnet)); fread(&suivant->pers, sizeof(carnet), 1, pf); temp->suivant = suivant; temp = suivant; } } fclose(pf);) sauf que j'ai toujours un maillon de trop, par exemple si j'ai 5 personnes dans ma liste, j'ai bien mes 5 personnes avec le chainage qui va bien, mais j'ai toujours une personne en plus en fin de liste qui a des valeurs vides (valeurs de la structure personne).
Partager