Avatar ·

Pourquoi utiliser `while (!stream.eof())` en C++ est une erreur ?

Bonjour à tous ! Je suis un développeur C++ débutant et j'ai un problème avec la lecture de fichiers. J'ai écrit un code qui doit lire des nombres depuis un fichier texte et les afficher à l'écran : ```cpp #include #include #include int main() { std::ifstream file("numbers.txt"); std::vector numbers; int value; while (!file.eof()) { file >> value; numbers.push_back(value); } for (int n : numbers) { std::cout << n << " "; } return 0; } ``` Le fichier `numbers.txt` contient : `10 20 30 40`. Je m'attends à ce que le programme affiche `10 20 30 40`, mais à la place il affiche `10 20 30 40 40`. C'est-à-dire que le dernier nombre est dupliqué. J'ai essayé avec différents fichiers, et le problème se répète — une copie supplémentaire est toujours ajoutée.