C学生成绩管理系统怎么使用文件
时间: 2024-05-04 07:21:16 浏览: 4
C语言中,我们可以通过文件来保存和读取学生成绩信息。一般来说,文件操作分为文件的打开、读写和关闭三个步骤。
下面是一个简单的示例,演示如何使用文件来保存和读取学生成绩信息:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int score;
};
int main() {
struct student s[3] = {{"Tom", 80}, {"Jerry", 90}, {"Alice", 70}}; // 三个学生的信息
FILE *fp; // 文件指针
fp = fopen("score.txt", "w"); // 打开文件,以写入模式
if (fp == NULL) {
printf("File open error!\n");
exit(1); // 如果文件打开失败,退出程序
}
for (int i = 0; i < 3; i++) {
fprintf(fp, "%s %d\n", s[i].name, s[i].score); // 将学生信息写入文件
}
fclose(fp); // 关闭文件
// 从文件中读取学生信息
fp = fopen("score.txt", "r"); // 打开文件,以读取模式
if (fp == NULL) {
printf("File open error!\n");
exit(1); // 如果文件打开失败,退出程序
}
struct student s2[3];
int i = 0;
while (!feof(fp)) { // 循环读取文件中的每行内容
fscanf(fp, "%s %d\n", s2[i].name, &s2[i].score); // 读取学生信息
i++;
}
fclose(fp); // 关闭文件
// 输出读取到的学生信息
for (int i = 0; i < 3; i++) {
printf("%s %d\n", s2[i].name, s2[i].score);
}
return 0;
}
```
在上面的示例中,我们首先定义了一个包含三个学生信息的结构体数组。然后,我们使用文件指针 `fp` 打开文件 `score.txt`,以写入模式。如果文件打开失败,程序将会退出。
接着,我们使用 `fprintf()` 函数将每个学生的信息写入文件中。最后,我们使用 `fclose()` 函数关闭文件。
在读取文件时,我们同样使用文件指针 `fp` 打开文件 `score.txt`,但是这次以读取模式。我们使用 `fscanf()` 函数循环读取文件中的每行内容,并将读取到的学生信息存储到另一个结构体数组中。最后,我们同样使用 `fclose()` 函数关闭文件。
最后,我们输出读取到的学生信息。
需要注意的是,文件操作有许多细节需要注意。比如,文件打开模式、读写位置等等。在实际编程中,我们需要根据具体情况来选择合适的文件操作方式。