Vérifier si le pointeur de fichier a atteint EOF sans déplacer le pointeur de fichier?

ma question est simple, mais je ne peux pas le trouver sur google, alors je suis ici.

Fondamentalement, comme un exemple, je lisais dans un tas de nombres entiers jusqu'à ce que EOF à partir d'un fichier d'entrée. J'ai utilisé fgetc pour vérifier, mais ensuite il se déplace le pointeur de fichier à l'adresse de la 2ème entier. Comment puis-je vérifier pour les expressions du FOLKLORE dans cette boucle sans déplacer le pointeur de fichier lors de la vérification?

Garder à l'esprit que je vais faire quelque chose de beaucoup plus complexe avec cette boucle que l'analyse des nombres entiers. Aussi, ne le mentionnez pas mon utilisation de fscanf plutôt que fgets, je sais. C'est juste un exemple simple pour vous montrer ce que je veux dire.

while(fgetc(ifp) != EOF)
{

    fscanf(ifp, "%d", &test);
    printf("%d\n", test);
}

Si le fichier d'entrée contient des entiers de 1 à 10 par exemple, le code ci-dessus affichera:

2
3
4
5
6
7
8
9
10

Manque le 1!

Parce que fgetc(ifp) va consommer un personnage

OriginalL'auteur Karim Elsheikh | 2013-08-05