C++ में `while (!stream.eof())` का उपयोग करना एक गलती क्यों है?
सभी को नमस्कार! मैं एक शुरुआती C++ डेवलपर हूँ, और मुझे फ़ाइलें पढ़ने में एक समस्या आई। मैंने एक कोड लिखा है जो टेक्स्ट फ़ाइल से संख्याएँ पढ़कर स्क्रीन पर प्रदर्शित करना चाहिए:\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\n`numbers.txt` फ़ाइल में यह है: `10 20 30 40`। मैं उम्मीद करता हूँ कि प्रोग्राम `10 20 30 40` आउटपुट करेगा, लेकिन इसके बजाय यह `10 20 30 40 40` आउटपुट करता है। यानी अंतिम संख्या डुप्लिकेट हो जाती है। मैंने अलग-अलग फ़ाइलें आज़माईं, और समस्या बार-बार होती है — हमेशा एक अतिरिक्त कॉपी जुड़ जाती है।