Avatar ·

قراءة ملف سطرًا بسطر باستخدام ifstream في C++

مرحبًا أيها الزملاء! أنا مبتدئ في لغة C++ وقد واجهت مشكلة عند قراءة ملف نصي. أحتاج إلى قراءة الملف سطرًا بسطر ومعالجة كل سطر. أستخدم ifstream، ولكن هناك شيء لا يعمل بشكل صحيح. إليك الكود الخاص بي: ```cpp #include #include #include int main() { std::ifstream file("data.txt"); std::string line; while (!file.eof()) { file >> line; std::cout << line << std::endl; } file.close(); return 0; } ``` المشكلة هي أنه عند تشغيل البرنامج، فإنه يطبع فقط الكلمة الأولى من كل سطر، وليس السطر بأكمله. على سبيل المثال، إذا كان الملف يحتوي على "Hello world"، فإنه يطبع فقط "Hello". لقد قرأت أنه يجب استخدام getline، لكنني لا أفهم كيفية استخدامه بشكل صحيح. كما سمعت أن استخدام eof() هو ممارسة سيئة، ولكن لماذا؟ هل يمكنكم شرح كيفية قراءة ملف سطرًا بسطر باستخدام ifstream بشكل صحيح؟ أود رؤية مثال عملي مع معالجة الأخطاء (على سبيل المثال، إذا كان الملف