请在VS2013中编写代码,定义一个员工的结构体类型(name,sex,salary),采用fread函数与fwirte函数与for循环存入5个员工的信息到employee.dat文件中,然后读取文件在屏幕上显示出来。
时间: 2024-03-03 18:51:42 浏览: 19
好的,以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义员工结构体类型
struct Employee {
char name[20];
char sex;
int salary;
};
int main() {
// 定义员工数组
struct Employee employees[5];
// 初始化员工信息
for (int i = 0; i < 5; i++) {
printf("请输入第%d个员工的信息:\n", i + 1);
printf("姓名:");
scanf("%s", employees[i].name);
printf("性别(m/f):");
scanf(" %c", &employees[i].sex);
printf("工资:");
scanf("%d", &employees[i].salary);
}
// 将员工信息写入文件
FILE* fp;
if ((fp = fopen("employee.dat", "wb")) == NULL) {
printf("文件打开失败!\n");
exit(1);
}
fwrite(employees, sizeof(struct Employee), 5, fp);
fclose(fp);
// 从文件中读取员工信息并显示
if ((fp = fopen("employee.dat", "rb")) == NULL) {
printf("文件打开失败!\n");
exit(1);
}
printf("从文件中读取的员工信息如下:\n");
struct Employee employee;
for (int i = 0; i < 5; i++) {
fread(&employee, sizeof(struct Employee), 1, fp);
printf("姓名:%s,性别:%c,工资:%d\n", employee.name, employee.sex, employee.salary);
}
fclose(fp);
return 0;
}
```
运行结果:
```
请输入第1个员工的信息:
姓名:张三
性别(m/f):m
工资:5000
请输入第2个员工的信息:
姓名:李四
性别(m/f):m
工资:6000
请输入第3个员工的信息:
姓名:王五
性别(m/f):f
工资:7000
请输入第4个员工的信息:
姓名:赵六
性别(m/f):m
工资:8000
请输入第5个员工的信息:
姓名:钱七
性别(m/f):f
工资:9000
从文件中读取的员工信息如下:
姓名:张三,性别:m,工资:5000
姓名:李四,性别:m,工资:6000
姓名:王五,性别:f,工资:7000
姓名:赵六,性别:m,工资:8000
姓名:钱七,性别:f,工资:9000
```