for(int i=0; i<3; i++)
{
ofs.write(reinterpret_cast
ofs.flush();
}
出现C2102错误是因为尝试在一个右值上取地址,而取地址操作(&)要求左值。在你的代码中,tel[i].getbianhao()返回的是一个右值(即临时值),不能直接在其上面取地址。
解决方案是将返回值存储在一个左值中,然后再在左值上取地址。比如:
char ch = tel[i].getbianhao();
ofs.write(&ch, sizeof(char));
ofs.flush();
这里将tel[i].getbianhao()返回的char类型值存储在了一个名为ch的左值中,并在&ch上取地址,这样就可以避免C2102错误。
答案来自 我点评开发社区 https://www.wodianping.com/