为什么二进制文件的最后一条记录打印了两次?
while( (inFile)
{
inFile.read(reinterpret_cast <char*> (&acc), sizeof(acc));
display(acc);
}
最佳答案
因为你的代码应该是这样的
while (inFile.read(reinterpret_cast<char*>(&acc), sizeof(acc))
{
display(acc);
}
您的版本仅在打印失败读取后测试失败。或者换句话说,while (infile)
不是测试下一次读取是否成功,而是测试上次读取是否成功。
关于c++ - 为什么fstream打印出文件的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55337451/