建立一个数组将实训12第2题定义的 学生数据存入数组。 数据为: { {"2020B200301","刘滨","男",18,{2020,9,20},70,85}, {"2020B200302","阚美娟","女",17,{2020,9,20},87,95}, {"2020B200303","胡大勇","男",17,{2020,9,20},69,80}, {"2020B200305","黎丽","女",18,{2020,9,20},68,88}} 将这些数据写人磁盘保存起来。
时间: 2023-08-27 21:21:39 浏览: 32
好的,以下是一个建立数组将学生数据存入数组,并将数据写入磁盘的 C 语言示例代码:
```c
#include <stdio.h>
struct Student {
char id[12]; // 学号
char name[20]; // 姓名
char gender[4]; // 性别
int age; // 年龄
int birthdate[3]; // 出生日期,数组中分别存储年、月、日
int score1; // 成绩1
int score2; // 成绩2
};
int main() {
// 定义学生数据数组
struct Student students[] = {
{"2020B200301", "刘滨", "男", 18, {2020, 9, 20}, 70, 85},
{"2020B200302", "阚美娟", "女", 17, {2020, 9, 20}, 87, 95},
{"2020B200303", "胡大勇", "男", 17, {2020, 9, 20}, 69, 80},
{"2020B200305", "黎丽", "女", 18, {2020, 9, 20}, 68, 88},
};
int num_students = sizeof(students) / sizeof(students[0]);
// 将学生数据写入磁盘文件
FILE *fp = fopen("students.dat", "wb");
if (fp != NULL) {
fwrite(students, sizeof(struct Student), num_students, fp);
fclose(fp);
}
return 0;
}
```
这段代码除了定义了结构体 `Student` 和学生数据数组 `students`,还使用了 C 标准库中的文件操作函数,将学生数据写入了磁盘文件 `students.dat` 中。
其中,`fopen` 函数用于打开文件,返回一个 `FILE` 类型的指针。第一个参数是文件名,第二个参数是打开方式,"wb" 表示以二进制写入模式打开文件。如果打开文件失败,`fopen` 将返回 `NULL`。
`fwrite` 函数用于将数据写入文件。第一个参数是要写入的数据的地址,第二个参数是每个数据项的大小,第三个参数是要写入的数据项数量,第四个参数是文件指针。这里我们将整个学生数据数组作为一个数据项,写入数量为学生数目。
最后,使用 `fclose` 函数关闭文件,释放资源。