C语言读取学生成绩文件:示例代码与解析
下面是一个使用C语言从文件读入学生成绩的示例代码:
#include <stdio.h>
#define MAX_STUDENTS 100
struct Student {
char name[100];
int score;
};
int main() {
struct Student students[MAX_STUDENTS];
int numStudents = 0;
FILE *file = fopen('scores.txt', 'r');
if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}
while (fscanf(file, "%s %d", students[numStudents].name, &students[numStudents].score) == 2) {
numStudents++;
}
fclose(file);
printf("读取到的学生成绩如下:\n");
for (int i = 0; i < numStudents; i++) {
printf("姓名:%s\t成绩:%d\n", students[i].name, students[i].score);
}
return 0;
}
假设我们有一个名为'scores.txt'的文本文件,其内容如下:
John 90
Alice 85
Bob 77
运行上述代码将输出:
读取到的学生成绩如下:
姓名:John 成绩:90
姓名:Alice 成绩:85
姓名:Bob 成绩:77
代码中,我们定义了一个struct Student结构体来表示学生的姓名和成绩。我们还定义了一个students数组来存储所有学生的信息。numStudents变量用于记录读取到的学生数量。
我们使用fopen函数打开名为'scores.txt'的文件。如果文件打开失败,我们将输出一条错误消息并返回。接着,我们使用fscanf函数来逐行读取文件内容,并将学生的姓名和成绩存储到students数组中。每次成功读取一行,numStudents自增1。
最后,我们使用fclose函数关闭文件,并遍历students数组,输出每个学生的姓名和成绩。
原文地址: https://www.cveoy.top/t/topic/pmOA 著作权归作者所有。请勿转载和采集!