为什么二进制文件的最后一条记录被打印出来两次?
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)
不是下一次读取会成功的测试,它是最后一次读取成功的测试。