定义两个结构体,一个表示员工初始数据,一个表示抽取后的数据:
struct employee{
int num;
char name[32];
char sex[4];
int age;
char addr[128];
int salary;
char health[10];
char classes[10];
}em[10];
struct emp{
char name[10];
int salary;
}em_case[10];
然后最初的文件:
if((fp1=fopen("employee.txt","r"))==NULL){
printf("文件读取失败!\n");
exit(0);
}
printf("\n NO. name sex age addr salary health class\n");
for(i=0;fread(&em[i],sizeof(struct employee),1,fp1)!=0;i++){
printf("\n%4s%8s%4s%6d%10s%6d%10s%8s",em[i].num,em[i].name,em[i].sex,em[i].age,
em[i].addr,em[i].salary,em[i].health,em[i].classes);
然后将读取的文件的姓名跟薪资放在另一个结构体数组中:
strcpy(em_case[i].name,em[i].name);
em_case[i].salary=em[i].salary;
}
然后打开另外一个文件将信息写入这个文件中:
for(int j=0;j<i;j++){
if(fwrite(&em_case[j],sizeof(struct emp),1,fp2)!=1){
printf("error!");
}
printf("\n%12s%10d",em_case[j].name,em_case[j].salary);
}