#2036. 二进制文件的操作
二进制文件的操作
当前没有测试数据。
问题描述
有一个二进制文件 data.bin
,文件中按顺序依次存储了多个学生的信息结构体,结构体定义如下:
typedef
char name[20];
int age;
float score;
} Student;
编写一个 C 程序,从 data.bin
文件中读取学生信息,筛选出年龄大于等于 18 岁且成绩大于等于 80 分的学生,将他们的信息存储到一个新的文本文件 excellent_students.txt
中,格式为:姓名 年龄 成绩,每个学生信息占一行。
格式
输入
data.bin 右侧菜单栏下载
输出
excellent_students.txt
提示
- 首先定义了学生结构体
Student
,包含姓名、年龄和成绩字段。 - 在
main
函数里,分别尝试打开二进制输入文件data.bin
和文本输出文件excellent_students.txt
,若打开失败则进行相应错误处理并退出程序。 - 进入循环,利用
fread
函数每次从二进制文件中读取一个学生结构体大小的数据到student
变量中。只要fread
成功读取(返回值为 1),就判断该学生是否满足年龄和成绩的优秀条件。 - 若满足条件,就使用
fprintf
将学生信息按指定格式写入输出文件,姓名、年龄、成绩之间用空格分隔,成绩保留两位小数。 - 最后关闭两个文件,程序结束。