iostream::eof লুপে ব্যবহার করা ভুল কারণ আমরা এখনও EOF-এ পৌঁছায়নি। সুতরাং এর মানে এটি নয় যে পরবর্তী রিড সফল হবে।
যখন আমরা C++-এ ফাইল স্ট্রিম ব্যবহার করে ফাইল পড়তে চাই। এবং যখন লুপ ব্যবহার করে ফাইলে লিখি, যদি আমরা stream.eof() ব্যবহার করে ফাইলের শেষ চেক করি, তবে আসলে আমরা চেক করছি ফাইল শেষ হয়েছে কিনা।
উদাহরণ কোড
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream myFile("myfile.txt");
string x;
while(!myFile.eof()) {
myFile >> x;
// আবার চেক করতে হবে x ভ্যালিড কিনা অথবা eof
if(x) {
// x দিয়ে কিছু করুন
}
}
}
যখন আমরা স্ট্রিমকে সরাসরি লুপে ব্যবহার করি, তখন কন্ডিশন আবার চেক করতে হয় না।
উদাহরণ কোড
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream myFile("myfile.txt");
string x;
while(myFile >> x) {
// x দিয়ে কিছু করুন
// কোনো চেক দরকার নেই!
}
}