二进制文件的输出错

想学计算机的小白 2019-05-03 02:35:04

为什么类Doctor的对象 D1 里的信息到文件里再拿出来后用getname的函数就不能正确显示了,name是char*类型。但是getage()是int型的就可以正确输出?

cout<<"你想修改信息的医生姓名为:";
cin>>gainame;
cin.ignore();
for(int k=0;k<p;k++)
{
in.read((char*)&D1,sizeof(D1));
if(strcmp(gainame,D1.getname())==0)
l=k;
}
if(l<p)
{
in.seekg(l*sizeof(D1),ios::beg);
in.read((char*)&D1,sizeof(D1));
cout<<"姓名:"<<D1.getname()<<endl;
cout<<"性别:"<<D1.getsex()<<endl;
cout<<"年龄:"<<D1.getage()<<endl;
cout<<"部门:"<<D1.getdepartment()<<endl;
cout<<"类型:"<<D1.getType()<<endl;
cout<<"地点:"<<D1.getlocation()<<endl;
cout<<"介绍:"<<D1.getintroduction()<<endl;
cout<<"请输入下面信息:"<<endl;
cout<<"年龄:";
int AAge;
cin>>AAge;
D1.set(AAge);
cout<<"部门:";
char DEP[10],LOC[15],TYP[5],INT[61];
cin>>DEP;
cout<<"地点:";
cin>>LOC;
cout<<"类型:";
cin>>TYP;
cout<<"个人介绍:";
cin>>INT;
D1.setdelo(DEP,LOC,TYP);
D1.setintro(INT);
in.seekp(l*sizeof(D1),ios::beg);
in.write((char*)& D1,sizeof(D1));
in.seekp(l*sizeof(D1),ios::beg);
in.read((char*)& D1,sizeof(D1));
D1.print();
...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧