请问个关于fwrite之类的问题。。。。

accome 2008-10-24 10:37:06


void CreatFile()
{

FILE *fp;
struct YuanGong yg;
fp=fopen("yg.dat","ab+");
cout<<"员工序号:";
cin>>yg.Numb;
cout<<"员工姓名:";
cin>>yg.Name;
fwrite(&yg,sizeof(struct YuanGong),1,fp);
fclose(fp);
}


void ChaXun()
{
struct YuanGong yg,yg1;
FILE *qp;
qp=fopen("yg.dat","rb+");
cout<<"请输入序号:";
cin>>yg.Numb;
rewind(qp);
while(fread(&yg1,sizeof(struct YuanGong),1,qp))
{
if(strcmp(yg.Numb,yg1.Numb)==0)
cout<<yg.Numb <<yg.Name ;
}
fclose(qp);
};


为什么输出第一个yg.Numb是对的,但是yg,Name是乱码了..全是什么烫烫烫。。。。郁闷死了。。。。。请教高手改改。。。。
...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhyttppd 2008-10-24
  • 打赏
  • 举报
回复
void CreatFile()
{

FILE *fp;
struct YuanGong yg;
//加一句
memset(&yg, 0, sizeof(YuanGong ));
fp=fopen("yg.dat","ab+");
cout < <"员工序号:";
cin>>yg.Numb;
cout < <"员工姓名:";
cin>>yg.Name;
fwrite(&yg,sizeof(struct YuanGong),1,fp);
fclose(fp);
}
xhs_lh04 2008-10-24
  • 打赏
  • 举报
回复
fwrite(&yg,sizeof(struct YuanGong),1,fp);
引起的吧
你不用结构使用成员fwrite试试
gulangduxing 2008-10-24
  • 打赏
  • 举报
回复
楼主可以按照下面的尝试下:
void CreatFile()
{

FILE *fp;
char str[100];
struct YuanGong yg;

if(NULL == (fp=fopen("yg.txt","a+")))
{
return;
}

cout<<"员工序号:";
cin>>yg.Numb;
cout<<"员工姓名:";
cin>>yg.Name;
sprintf(str,"%d,%s",yg.Numb,yg.Name);

fwrite(str,strlen(str),1,fp);
fwrite("\n",sizeof("\n"),1,fp);

fclose(fp);
}
weidong0210 2008-10-24
  • 打赏
  • 举报
回复
up

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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