0

我正在尝试从文件中读取字符串,但它只占用其他所有条目。我的代码哪里出错了?

加载功能:

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

侯爷,鸭子,555.555.6666

斯波克先生,555.555.7777

船长,柯克,555.555.8888

雪,白,555.555.9999

睡觉,美女,555.555.0000

4

1 回答 1

0

根据我的经验,“>>”运算符和 getline() 函数不能很好地结合使用。我会将代码更改为此,看看它是否有帮助:

while (!fin.eof()){
    getline(fin, firstName, ',');
    getline(fin, lastName, ',');
    getline(fin, phoneNumber, '\n');

    pb.addEntry(PhoneEntry(firstName, lastName, phoneNumber));

}
于 2013-04-02T03:52:57.343 回答