int i = 0;
while(!fin.eof())
{
fin >> fname;
fin >> lname;
fin >> id;
customer[i].setFname(fname);
customer[i].setLname(lname);
customer[i].setId(id);
i++;
}
fin.close();
当我的程序进入此 while 循环的第四次迭代时(并且我的输入 .txt 文件中的文本用完),Visual Studio 会提示我:
program5.exe 中 0x754bc41f 处的未处理异常:Microsoft C++ 异常:std::ios_base::failure at memory location 0x003ceb64..
我不知道为什么。我尝试将 !fin.eof() 替换为 (fin >> x) 其中 x 是一个 int,我尝试使用 do-while 而不是一段时间,我尝试使用 get、getline。我认为这可能是我的 >> 运算符没有触发 eof 的问题,所以我添加了 fin.peek(); 在循环的最后,它会在偷看时触发 eof。我只是不知道我做错了什么。假设我的客户类工作正常,我已经在这个循环之外进行了测试,它工作得很好。