Double lecture avec fscanf - C - Programmation
Marsh Posté le 20-10-2005 à 22:54:54
jon301 a écrit :
|
feof() ne fait pas ce que tu crois.
http://mapage.noos.fr/emdel/notes.htm#fichiers
Sinon, je recommande fgets() puis sscanf()...
Citation : |
Données insuffisantes. Poste une version minimale mais complète et compilable qui montre le défaut.
Marsh Posté le 20-10-2005 à 21:52:13
Salut à tous,
Je dispose d'un fichier dont le format est le suivant :
---------------------------
BERNE Rodolphe
1976
14, Concierge
73, Savoie
GAILLOT Marc
1974
45, Secretaire
68, Haut-Rhin
...
---------------------------
A partir de ce fichier, je dois extraire les informations suivantes, que j'ajoute a une liste :
BERNE Rodolphe, 1976, 14, 73
GAILLOT Marc, 1974, 45, 68
...
(",Concierge" et ", Savoie" sont ignorés)
Donc voici comment se présente mon code :
Description des variables :
une_identite : tableau de caractère (contient nom+prenom)
une_annee, une_profession, un_departement : entiers
ligne_suite : suite de la ligne dont je ne me préoccupe pas (contient par exemple ", Concierge", ", Savoie" ...)
Le problème est qu'au final, j'obtiens la liste voulue mais avec tous les éléments en DOUBLE.
Exemple de liste obtenue :
---------------------------
BERNE Rodolphe, 1976, 14, 73
BERNE Rodolphe, 1976, 14, 73
GAILLOT Marc, 1974, 45, 68
GAILLOT Marc, 1974, 45, 68
...
---------------------------
Ceci signifie qu'au premier bouclage, la fonction lit les 4 premières lignes et insère l'élément.
Au deuxième bouclage, la fonction RE-LIT les 4 mêmes lignes et insère l'élément !
et ce, jusqu'à la fin du fichier...
Je ne comprends pas pourquoi le pointeur reste toujours sur la même ligne la 2e fois, alors qu'il devrait avancer 4 par 4.
Voila voila
Merci d'avance pour votre aide !
Jon
Message édité par jon301 le 20-10-2005 à 22:55:00