Lecture d'entiers à partir d'un fichier jusqu'à EOF : éviter les doubles lectures
Le code C fourni lit les entiers à partir d'un fichier texte jusqu'à la fin du fichier (EOF). Cependant, il lit la dernière ligne deux fois, ce qui entraîne une répétition dans la sortie. Cela se produit parce que :
Solution :
Pour résoudre ce problème, utilisez une boucle while qui se termine lors de la lecture d'EOF :
while (true) { int x; iFile >> x; if (iFile.eof()) break; cerr << x << endl; }
Dans cette boucle :
Cette approche garantit que le dernier entier est imprimé une seule fois.
Remarque :
Le code original avait un autre potentiel problème : tentative de lecture d'un fichier vide. Cela peut être résolu en intégrant l'opération de lecture dans une instruction if qui vérifie si le flux est ouvert et non à EOF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!