C语言 文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上。
时间: 2023-12-22 09:18:55 浏览: 136
好的,这是一个关于文件读写和字符串操作的问题,下面是一个示例代码,可以供您参考:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char name[20];
char id[10];
char hometown[20];
float score[3];
float avg;
};
int main() {
FILE *fp1, *fp2;
struct Student stu;
char filename1[] = "stu_info1.txt";
char filename2[] = "stu_info2.txt";
// 打开文件并检查是否成功
fp1 = fopen(filename1, "r");
fp2 = fopen(filename2, "w");
if (fp1 == NULL || fp2 == NULL) {
printf("文件打开失败!\n");
return -1;
}
// 读取文件并计算平均分
while (fscanf(fp1, "%s%s%s", stu.name, stu.id, stu.hometown) == 3) {
float sum = 0;
for (int i = 0; i < 3; i++) {
printf("请输入 %s 的第 %d 门课程成绩:", stu.name, i + 1);
scanf("%f", &stu.score[i]);
sum += stu.score[i];
}
stu.avg = sum / 3;
// 写入文件
fprintf(fp2, "%s %s %s %.1f %.1f %.1f %.1f\n", stu.name, stu.id, stu.hometown,
stu.score[0], stu.score[1], stu.score[2], stu.avg);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
printf("文件写入成功!\n");
return 0;
}
```
这个程序首先打开 `stu_info1.txt` 文件,读取每一行的信息,并依次询问用户输入三门课程的成绩,计算平均分后写入 `stu_info2.txt` 文件中。需要注意的是,这里使用了 `struct` 结构体来存储每个学生的信息,方便进行读写操作。
阅读全文