使用结构数组实现学生信息数据的录入和文件的读写 c语言
时间: 2024-03-20 20:44:08 浏览: 115
好的,我可以为您提供一个基本的实现代码。首先,我们需要定义一个结构体来存储学生信息:
```c
struct Student {
int id;
char name[50];
int age;
float score;
};
```
然后,我们可以定义一个结构体数组来存储多个学生的信息:
```c
struct Student students[100]; // 假设最多存储100个学生的信息
int count = 0; // 记录已经录入的学生数量
```
接下来,我们来实现学生信息的录入:
```c
void inputStudent() {
struct Student s;
printf("请输入学生的信息:\n");
printf("学号:");
scanf("%d", &s.id);
printf("姓名:");
scanf("%s", s.name);
printf("年龄:");
scanf("%d", &s.age);
printf("成绩:");
scanf("%f", &s.score);
students[count++] = s; // 将录入的学生信息存储到结构体数组中
printf("录入成功!\n");
}
```
接下来,我们来实现将学生信息写入文件的功能:
```c
void saveToFile() {
FILE *fp;
fp = fopen("students.dat", "wb"); // 以二进制写入的方式打开文件
if (fp == NULL) {
printf("文件打开失败!\n");
return;
}
fwrite(students, sizeof(struct Student), count, fp); // 将结构体数组写入文件
fclose(fp);
printf("保存成功!\n");
}
```
最后,我们来实现从文件中读取学生信息的功能:
```c
void readFromFile() {
FILE *fp;
fp = fopen("students.dat", "rb"); // 以二进制读取的方式打开文件
if (fp == NULL) {
printf("文件打开失败!\n");
return;
}
int n = fread(students, sizeof(struct Student), 100, fp); // 从文件中读取结构体数组
count = n; // 更新已经录入的学生数量
fclose(fp);
printf("读取成功!\n");
}
```
以上就是使用结构数组实现学生信息数据的录入和文件的读写的基本代码实现。