structure recursive et fichier
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 :
Code:
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; |
Le code pour charger une liste a partir de mon fichier :
Code:
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); |
Voila mon probleme : Ca marche bien (bon ce n'est pas ca mon probleme :roll: ) 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).