C语言有一个磁盘文件存放员工的信息,将其中的职工名和工资单独抽取出来存放到另一个文件中并显示出来。

定义两个结构体,一个表示员工初始数据,一个表示抽取后的数据:

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);
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值