从输入文件中获取一个字符串

时间:2013-04-02 03:43:45

标签: c++ file-io

我正在尝试从文件读取字符串,但它只接受所有其他条目。我在哪里错误的代码?

加载功能:

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

1 个答案:

答案 0 :(得分:0)

根据我的经验,'>>' operator和getline()函数不能很好地结合在一起。我会将代码更改为此,看看是否有帮助:

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

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

}