你可以定义一个类来保存每个人的数据:
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