#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

提示

  1. 首先定义了学生结构体 Student,包含姓名、年龄和成绩字段。
  2. main 函数里,分别尝试打开二进制输入文件 data.bin 和文本输出文件 excellent_students.txt,若打开失败则进行相应错误处理并退出程序。
  3. 进入循环,利用 fread 函数每次从二进制文件中读取一个学生结构体大小的数据到 student 变量中。只要 fread 成功读取(返回值为 1),就判断该学生是否满足年龄和成绩的优秀条件。
  4. 若满足条件,就使用 fprintf 将学生信息按指定格式写入输出文件,姓名、年龄、成绩之间用空格分隔,成绩保留两位小数。
  5. 最后关闭两个文件,程序结束。