class Person {
private:
string firstName;
string lastName;
public:
Person() {}
Person(ifstream &fin) {
fin >> firstName >> lastName;
}
void print() {
cout << firstName
<< " "
<< lastName
<< endl;
}
};
int main() {
vector<Person> v;
ifstream fin("people.txt");
while (true) {
Person p(fin);
if (fin == NULL) { break; }
v.push_back(p);
}
for (size_t i = 0; i < v.size(); i++) {
v[i].print();
}
fin.close();
return 0;
}
Vui lòng giải thích cho tôi, đoạn mã sau hoạt động như thế nào? nếu (fin == NULL) {break; }C++, đọc tệp bằng ifstream
vây là một đối tượng trên ngăn xếp, không phải là con trỏ để nó không thể trở thành NULL. Tôi không thể tìm thấy hàm operator == quá tải trong lớp ifstream. Vì vậy, tôi không thể hiểu được đoạn mã này hoạt động như thế nào.
Cảm ơn bạn rất nhiều. Câu trả lời của bạn rất hữu ích. – Yoh0xFF