任务二:读写二进制文件 任务描述及其步骤: (1)在 main.c 文件中,定义一学生结构体 Student,包含:姓名(字符数组类型),学号 (int 类型),年龄(int 类型)。 (2)在 main 函数中: 声明学生结构体数组 stus,大小为 3,并给该数组初始化。 声明学生结构体数组 temp,大小为 3 定义一个文件指针变量 fp,用于读写二进制文件“student.dat” 以只写的方式打开文件“student.dat”,使用 fwrite 函数把结构体数组 stus 写入文件,关 闭文件; 以只读的方式重新打开文件,使用 fread 函数从文件中读取数据,存到 temp 中,输出 temp 的内容,关闭文件。给出c语言代码
时间: 2024-03-23 08:43:25 浏览: 110
好的,以下是完整的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20];
int id;
int age;
} Student;
int main() {
Student stus[3] = {
{"张三", 1001, 18},
{"李四", 1002, 19},
{"王五", 1003, 20}
};
Student temp[3];
FILE *fp;
// 写入二进制文件
fp = fopen("student.dat", "wb");
if (fp == NULL) {
printf("打开文件失败!\n");
return 1;
}
fwrite(stus, sizeof(Student), 3, fp);
fclose(fp);
// 读取二进制文件
fp = fopen("student.dat", "rb");
if (fp == NULL) {
printf("打开文件失败!\n");
return 1;
}
fread(temp, sizeof(Student), 3, fp);
fclose(fp);
// 输出读取的内容
int i;
for (i = 0; i < 3; i++) {
printf("姓名:%s,学号:%d,年龄:%d\n", temp[i].name, temp[i].id, temp[i].age);
}
return 0;
}
```
运行程序后,会将学生结构体数组 stus 写入文件 student.dat 中,然后再读取文件中的数据到数组 temp 中,并输出 temp 的内容。最后关闭文件并返回 0。