用c语言写输入若干同学的姓名、学号、三门功课成绩,写入到磁盘文件中(文件名自定)并顺序读入所建立磁盘文件中各个同学的姓名、学号、成绩,显示输出。。
时间: 2024-02-07 17:03:52 浏览: 176
好的,以下是使用 C 语言实现的代码:
```c
#include <stdio.h>
struct student {
char name[20];
char id[20];
int score[3];
};
int main() {
int num;
printf("请输入学生人数: ");
scanf("%d", &num);
struct student students[num];
// 获取学生信息和成绩
for (int i = 0; i < num; i++) {
printf("请输入第%d个学生的姓名: ", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的学号: ", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的第一门功课成绩: ", i+1);
scanf("%d", &students[i].score[0]);
printf("请输入第%d个学生的第二门功课成绩: ", i+1);
scanf("%d", &students[i].score[1]);
printf("请输入第%d个学生的第三门功课成绩: ", i+1);
scanf("%d", &students[i].score[2]);
}
// 写入文件
char filename[50];
printf("请输入要保存的文件名: ");
scanf("%s", filename);
FILE *fp;
fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
for (int i = 0; i < num; i++) {
fprintf(fp, "姓名: %s\n", students[i].name);
fprintf(fp, "学号: %s\n", students[i].id);
fprintf(fp, "成绩: %d, %d, %d\n", students[i].score[0], students[i].score[1], students[i].score[2]);
fprintf(fp, "\n");
}
fclose(fp);
printf("保存成功!\n");
// 从文件中读取学生信息和成绩
fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
printf("从文件中读取的学生信息和成绩如下:\n");
char buffer[100];
while (fgets(buffer, 100, fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
```
以上代码中,我们首先按照上一个问题的方法获取学生信息和成绩,并将其写入到指定的文件中。接着,我们重新打开该文件,并依次读取每一行,最后将读取到的学生信息和成绩输出到控制台上。
请根据您的实际需求修改文件名和保存路径。
阅读全文