为什么二进制文件的最后一条记录被打印两次?
while( (inFile)
{
inFile.read(reinterpret_cast <char*> (&acc), sizeof(acc));
display(acc);
}
答案 0 :(得分:2)
因为您的代码应阅读
while (inFile.read(reinterpret_cast<char*>(&acc), sizeof(acc))
{
display(acc);
}
您的版本仅在打印出失败的内容后进行测试。或者换一种说法,while (infile)
并不是下一次读取成功的测试,而是上一次读取成功的测试。