Bonjour,
le contenu de mon fichier texte est :
Mitterand François H 08/23/47
Bush Georges H 07/28/56
Filon Cristine F 06/21/69
....etc
en gros c'est le nom, le prenom, le sexe et la date de naissance.
une ligne correspond à une personne.
mon algo est une boucle while qui dit que : tant que je ne suis pas en fin de fichier, je recupere le contenu de chaque ligne dans des variables correspondantes et je l'affiche.
voici le code :
<gras>{ ....
/*on suppose que les varibles nom, prenom ... sont déjà déclarées*/
while(fscanf(le_nom_du_fichier, " %s %s %c %s", nom, prenom, &sexe, datenaissance) != EOF)
{
printf("\nRESULTAT %d %s %s %s %c %s\n", nom, prenom, sexe, datenaissance);
}
...
}
Le problème c'est que ça m'affiche uniquement la dernière ligne. Dans l'exemple du fichier au-dessus, s'il y a ces 3 personnes dans le fichier, il ne m'affiche que Filon Cristine F 06/21/69
alors que moi je veux afficher :
Mitterand François H 08/23/47
Bush Georges H 07/28/56
Filon Cristine F 06/21/69
Qu'est-ce qui va pas dans mon programme SVP ?

la fonction fscanf teste bien un EOF, j'ai vu ça dans un tuto.
preuve : j'ai le fichier nombres.txt
son contenu est
1
2
3
4
5
6
7
voici mon code :
int main(){
FILE * fic;
int nombre;
fic = fopen("nombres.txt", "r");
if(fic == NULL){
printf("Impossible d'ouvrir le fichier %s\n", "nombres.txt");
exit(1);
}
while(fscanf(fic, "%d", &nombre) != EOF){
printf("\nRESULTAT : %d\n", nombre);
}
if(fclose(fic) == EOF){
printf("\nProbleme de fermeture du fichier %s\n", "nombres.txt");
exit(1);
}
return 0;
}
Et comme résultat il m'affiche bien :
RESULTAT : 1
RESULTAT : 2
RESULTAT : 3
RESULTAT : 4
RESULTAT : 5
RESULTAT : 6
RESULTAT : 7
Conclusion : le teste d'EOF fonction réellement.