从输入文件中获取字符串

take in a string from input file

本文关键字:获取 字符串 文件 输入      更新时间:2023-10-16

我正试图从文件中读取字符串,但它只接受每一个其他条目。我的代码哪里出错了?

加载功能:

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

根据我的经验,'>>'操作符和getline()函数不能很好地配合使用。我会把代码改成这样,看看是否有帮助:

while (!fin.eof()){
    getline(fin, firstName, ',');
    getline(fin, lastName, ',');
    getline(fin, phoneNumber, 'n');
    pb.addEntry(PhoneEntry(firstName, lastName, phoneNumber));
}