C++二进制在文件中读取对象信息报错

intmain(){Colleaguec("CFO","读书",31,'F',"安迪");ofstreamb;b.open("colleague.txt",ios::bi... int main()
{
Colleague c("CFO","读书",31,'F',"安迪");
ofstream b;
b.open("colleague.txt",ios::binary|ios::app);
b.write((char*)&c,sizeof(Colleague));
b.close();
Colleague clg;
int i;
fstream a;
a.open("colleague.txt",ios::binary|ios::in);
a.read((char*)&clg,sizeof(Colleague));
cout<<clg.GetBusiness()<<endl;
}

这些是代码,有一点补充的是,如果文件在运行前是空的就可以运行,但如果第二次或以上运行就会崩掉,求大神解答
展开
 我来答
厦门侯
高粉答主

2018-04-26 · 信息管理员
厦门侯
采纳数:30618 获赞数:90297

向TA提问 私信TA
展开全部
非pod式类不可以直接这样读取,必须自己完成序列化和反序列化,你的类中的string不是pod类,因此你的类也不是pod的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式