我有以下人员档案:
Name 0744112233 ASD
和以下代码
const string InFilePersonRepository::PFILE = "persons";
void InFilePersonRepository::load() {
string delim = " ";
string name, phone, address;
ifstream fin(PFILE.c_str());
while (fin.good()){
fin>>name>>delim>>phone>>delim>>address;
Person p(name,phone,address);
persons.push_back(p);
}
}
阅读完成后,姓名,电话,地址的值为:name = Name,phone = ASD, address =“”,
如果文件有多行,同样的问题,则跳过文件中的第二个字段。为什么会这样?
由于
答案 0 :(得分:3)
>>
会跳过空格,因此不需要delim
。 fin >> name >> phone >> address
应该这样做。
答案 1 :(得分:1)
尝试类似的东西
void InFilePersonRepository::load() {
string name, phone, address;
ifstream fin(PFILE.c_str());
while (fin.good()){
fin>>name>>phone>>address;
Person p(name,phone,address);
persons.push_back(p);
}
}