麻烦高手看下程序

wohu007 2011-03-06 05:07:40
这个程序为什么不能输出 新建的文件里面的姓名和工资 主要的是姓名出来了,工资不是正确的 本来是3000 和4000
#include "stdio.h"
#define N 2
struct worker
{ char name[10];
int no;
char sex[3];
int age;
char addr[20];
int salary;
char health[10];
char xuli[10];
};
struct sworker
{ char name[10];
int salary;
};
creat()
{ FILE *fp;
struct worker w[N]={{"张三",1001,"男 ","北大 ",3000," 良","本科 "},
{"李四 ",1002, "男 ","清华 ",4000," 良 "," 本科"}};
if((fp=fopen("employ.data","w"))==NULL)/*以“写”的方式打开

这个文件*/
{ printf("cannot open this file\n");
exit (0);
}
fwrite(w,sizeof(struct worker),N,fp);
fclose(fp);
}
main()
{ FILE *fp1,*fp2;
int i;
struct worker w[N];
struct sworker sw[N];
creat();
if((fp1=fopen("employ.data","r"))==NULL)/*以“读”的方式打开

这个文件*/
{ printf("cannot open this file\n");
exit (0);
}
if((fp2=fopen("em.data","w"))==NULL)/*以“写”的方式打开这个

文件*/
{ printf("cannot open this file\n");
exit (0);
}
fread(w,sizeof(struct worker),N,fp1);
for(i=0;i<N;i++)
{ strcpy(sw[i].name,w[i].name);
sw[i].salary=w[i].salary;
}
fwrite(sw,sizeof(struct sworker),N,fp2);
rewind(fp2);
for(i=0;i<N;i++)
fread(&sw[i],sizeof(struct sworker),1,fp2);
for(i=0;i<N;i++)
printf("%s%d\n",sw[i].name ,sw[i].salary );
fclose(fp1);
fclose(fp2);
}











...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
witwolf 2011-03-06
  • 打赏
  • 举报
回复
struct worker
{ char name[10];
int no;
char sex[3];
int age;
char addr[20];
int salary;
char health[10];
char xuli[10];
};

中有age

{"张三",1001,"男 ","北大 ",3000," 良","本科 "}

中缺少age字段
ProgrammingRing 2011-03-06
  • 打赏
  • 举报
回复
您那worker结构和初始化数据都不对口
pengzhixi 2011-03-06
  • 打赏
  • 举报
回复
struct worker w[N]={{"张三",1001,"男 ","北大 ",3000," 良","本科 "},
{"李四 ",1002, "男 ","清华 ",4000," 良 "," 本科"}};
struct worker
{ char name[10];
int no;
char sex[3];
int age;
char addr[20];
int salary;
char health[10];
char xuli[10];
};
你自己先看看数据项符合你定义的这个worker吧

69,382

社区成员

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

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