Avatar ·

Warum ist die Verwendung von `while (!stream.eof())` in C++ ein Fehler?

Hallo zusammen! Ich bin ein C++-Anfänger und habe ein Problem beim Lesen von Dateien. Ich habe Code geschrieben, der Zahlen aus einer Textdatei lesen und auf dem Bildschirm ausgeben soll:\n\n```cpp\n#include \n#include \n#include \n\nint main() {\n std::ifstream file("numbers.txt");\n std::vector numbers;\n int value;\n\n while (!file.eof()) {\n file >> value;\n numbers.push_back(value);\n }\n\n for (int n : numbers) {\n std::cout << n << " ";\n }\n return 0;\n}\n```\n\nDie Datei `numbers.txt` enthält: `10 20 30 40`. Ich erwarte, dass das Programm `10 20 30 40` ausgibt, aber stattdessen gibt es `10 20 30 40 40` aus. Das heißt, die letzte Zahl wird dupliziert. Ich habe verschiedene Dateien ausprobiert, und das Problem tritt immer wieder auf – es wird immer eine zusätzliche Kopie hinzugefügt.