A mon sens, le problème vient justement de là.
Tester via
feof() va t'indiquer
à un instant T si le fichier que tu lis est EOF. Le soucis avec cette manière de faire, c'est que si il reste une crasse dans le fichier, après ton dernier nombre, un \n par exemple, le fichier ne sera pas considéré comme EOF. Du coup tu repasses dans le
fscanf(), qui lui fera bien gentiment son boulot. Il ne va pas lire la valeur restante car ce n'est pas un nombre et arrivera sur EOF, laissera donc inchangé le contenu de la variable
entier, et retournera la valeur d'erreur EOF. Comme tu ne vérifies pas ce retour, il affiche sans encombre le
printf().Qui peut avantageusement être remplacé par ceci, qui est à mes yeux plus propres encore.
Code:
1 2
| while ( fscanf(fichier, "%d", &entier) != EOF )
printf("%d\n", entier); |