你可以定義一個類來保存每個人的數據:
class Person {
public:
std::string name;
std::string study_path;
std::string semester;
unsigned int age;
};
然後,你可以定義一個流提取運算該類:
std::istream & operator>>(std::istream & stream, Person & person) {
stream >> person.name >> person.study_path >> person.semester >> person.age;
return stream;
}
然後你可以閱讀整個文件是這樣的:
std::ifstream file("datafile.txt");
std::vector<Person> data;
std::copy(std::istream_iterator<Person>(file), std::istream_iterator<Person>(),
std::back_inserter(data));
這將讀取整個文件並存儲所有的extrac特德在vector
記錄。如果您知道您將提前閱讀的記錄數,則可以在閱讀文件之前致電data.reserve(number_of_records)
。因此,該矢量將具有足夠的內存來存儲所有記錄而無需重新分配,如果文件很大,這可能會加速加載。
您可能想了解循環。 – pmr 2010-11-14 13:33:32
另一個提示(SCNR):使用國際標識符和評論。 Hierkönnennur wenige deutsch。 – sbi 2010-11-14 14:09:33