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.