如何提取文件中结构体数组的个数?
职工档案管理系统
将职工数据存入结构体数组中,再存到txt文件里,现在的问题是在原有的基础上再次添加一个职工数据,下面的函数可以正确读取职工人数,但是再添加第二个职工数据人数却不变了!!是这个计算职工人数的函数有问题,还是添加一个职工数据的函数有问题?
struct the_workers//职工结构数组
{
long long num;//12位工号
char name[100];//姓名
char sex[10];//性别
int birth;//生日
int grade;//工资等级
float salary;//工资金额
}workers[1000],*p;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
int wnum()//计算职工人数
{
int num=0;
FILE *fp;
fp=fopen("workers.txt","r");
while(!feof(fp))
if(fread(&workers[num],sizeof(struct the_workers),1,fp)==1)
num++;
if(num==0)
{
printf("无记录!\n");
return;
}
fclose(fp);
return num;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
int addwork()//添加一个职工数据
{
int i,num;
num=wnum();
p=workers;
FILE *fp,*tp;
fp=fopen("workers.txt","a+");
printf("请添加职工档案信息:\n\n");
scanf("%lld%s%s%d%d%f",&p->num,p->name,p->sex,&p->birth,&p->grade,&p->salary);
fwrite(workers,sizeof(struct the_workers),1,fp);
printf("添加成功!\n");
num++;
fclose(fp);
鞍山 ,徐州 ,南昌办理毕业证书【+V:bz65321】

浙公网安备 33010602011771号