有一个文件employee,存放职工的数据。每个职工的数据包括职工姓名、职工号、性别、年龄、住址、工资、健康状况、文化程度。今要求将职工名、工资的信息单独抽出来另建一个简明的职工工资文件。用C语言编写代码
时间: 2023-12-19 19:55:58 浏览: 154
以下是一个简单的C语言程序,可以将原始employee文件中的职工姓名和工资信息分离到一个新的文件中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LEN 1000
typedef struct {
char name[20];
int salary;
} Employee;
int main() {
FILE *fp_in, *fp_out;
char line[MAX_LINE_LEN];
// 打开原始文件和新文件
fp_in = fopen("employee.txt", "r");
if (fp_in == NULL) {
printf("Error opening input file!\n");
exit(1);
}
fp_out = fopen("salary.txt", "w");
if (fp_out == NULL) {
printf("Error opening output file!\n");
exit(1);
}
// 读取每一行数据并抽取姓名和工资信息
while (fgets(line, MAX_LINE_LEN, fp_in) != NULL) {
Employee e;
char *token = strtok(line, ",");
strcpy(e.name, token);
token = strtok(NULL, ",");
// 跳过性别、年龄、住址、健康状况和文化程度
token = strtok(NULL, ",");
token = strtok(NULL, ",");
token = strtok(NULL, ",");
token = strtok(NULL, ",");
token = strtok(NULL, ",");
sscanf(token, "%d", &e.salary);
// 将姓名和工资信息写入新文件
fprintf(fp_out, "%s,%d\n", e.name, e.salary);
}
// 关闭文件并退出程序
fclose(fp_in);
fclose(fp_out);
return 0;
}
```
注意,这个程序假设原始文件中的每一行数据都按照“姓名,职工号,性别,年龄,住址,工资,健康状况,文化程度”的格式排列。如果实际情况有所不同,程序可能需要进行相应修改。
阅读全文