শুধু EOF-এ পৌঁছানো নয়, এর মানে নয় পরবর্তী রিড সফল হবেই।
ধরুন আপনার একটি ফাইল আছে যা আপনি C++-এ ফাইল স্ট্রিম ব্যবহার করে পড়ছেন। ফাইল পড়ার জন্য লুপ লিখতে समय যদি আপনি stream.eof() চেক করেন, তাহলে আপনি আসলে চেক করছেন ফাইলটি ইতিমধ্যে 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 দিয়ে কিছু কাজ করুন
// কোনো অতিরিক্ত চেক দরকার নেই!
}
}