我正在尝试从文件读取字符串,但它只接受所有其他条目。我在哪里错误的代码?
加载功能:
void loadPhoneBookFromFile(PhoneBook& pb, ifstream& fin, const string& filename){
string firstName;
string lastName;
string phoneNumber;
fin.open(filename.c_str());
while (fin >> firstName){
getline(fin, firstName, ',');
getline(fin, lastName, ',');
getline(fin, phoneNumber);
pb.addEntry(PhoneEntry(firstName, lastName, phoneNumber));
}
}//end loadPhoneBookFromFile
文本文件:(但条目之间没有空格输入空格)
玛丽,满人间,555.555.1111
彼得,潘,555.555.2222
先生编辑,555.555.3333
唐纳德,鸭,555.555.4444
菊花,鸭,555.555.5555
Houie,鸭,555.555.6666
先生,斯波克,555.555.7777
船长,柯克555.555.8888
雪,白色,555.555.9999
睡眠,美容,555.555.0000
答案 0 :(得分:0)
根据我的经验,'>>' operator和getline()函数不能很好地结合在一起。我会将代码更改为此,看看是否有帮助:
while (!fin.eof()){
getline(fin, firstName, ',');
getline(fin, lastName, ',');
getline(fin, phoneNumber, '\n');
pb.addEntry(PhoneEntry(firstName, lastName, phoneNumber));
}