La suite C++ code utilise un ifstream objet à lire des nombres entiers à partir d'un fichier texte (qui a un nombre par ligne) jusqu'à ce qu'il frappe expressions du FOLKLORE. Pourquoi faut-il lire en entier sur la dernière ligne deux fois? Comment résoudre ce problème?
Code:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream iFile("input.txt"); // input.txt has integers, one per line
while (!iFile.eof())
{
int x;
iFile >> x;
cerr << x << endl;
}
return 0;
}
input.txt:
10
20
30
Sortie:
10
20
30
30
Note: j'ai sauté tous d'erreur de code de vérification de garder l'extrait de code de de petites. La au-dessus de comportement est visible sur Windows (Visual C++), cygwin (gcc) et Linux (gcc).