从文件rawscore.txt中读取学生的基本信息,包括学生人数、考核科目数及每位学生各科目分数
时间: 2024-03-27 19:35:48 浏览: 81
好的,以下是一个示例代码,用于从文件rawscore.txt中读取学生的基本信息,包括学生人数、考核科目数及每位学生各科目分数:
```c
#include <stdio.h>
int main() {
FILE *fp;
int num_students, num_subjects;
fp = fopen("rawscore.txt", "r"); // 打开文件
if (fp == NULL) {
printf("无法打开文件!\n");
return 0;
}
fscanf(fp, "%d %d", &num_students, &num_subjects); // 读取学生人数和考核科目数
printf("学生人数:%d,考核科目数:%d\n", num_students, num_subjects);
for (int i = 0; i < num_students; i++) {
struct Student student; // 定义一个结构体变量,用于存储当前学生信息
fscanf(fp, "%s %d", &student.name, &student.id); // 读取学生姓名和学号
printf("姓名:%s,学号:%d,各科成绩:", student.name, student.id);
for (int j = 0; j < num_subjects; j++) {
fscanf(fp, "%f", &student.scores[j]); // 读取各科成绩
printf("%.1f ", student.scores[j]); // 输出各科成绩
}
printf("\n");
}
fclose(fp); // 关闭文件
return 0;
}
```
上述代码中,我们使用了文件操作函数`fopen()`和`fclose()`来打开和关闭文件。在打开文件后,我们使用`fscanf()`函数从文件中读取学生人数和考核科目数,并输出到屏幕上。然后,我们使用循环逐个读取每个学生的姓名、学号和各科成绩,并将其存储到相应的结构体变量中。在读取各科成绩时,我们还输出了其值。最后,我们使用`fclose()`函数关闭文件。
请注意,上述代码中的结构体变量`Student`需要根据实际情况进行定义。同时,也需要根据实际情况修改文件名和路径。
阅读全文