c语言编程有如下学生信息表: 学号 姓名 成绩 01 aa 90 02 bb 78 ...... 从键盘输入若干条记录,学号输入#时 输入结束。 输入格式如下所示: 01 aa 50 02 bb 78 03 cc 40 04 dd 70 # 将这些记录存入文件a3中,然后从 文件中读出最后一条记录,输出到屏幕。 输出格式如下所示: 04 dd 70
时间: 2023-06-18 09:01:55 浏览: 144
c语言 conio.h头文件介绍
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct Student {
char id[3]; // 学号
char name[10]; // 姓名
int score; // 成绩
};
int main() {
struct Student stu;
FILE *fp;
// 将记录存入文件a3中
fp = fopen("a3", "w");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
printf("请输入学生信息,格式:学号 姓名 成绩,输入#表示输入结束\n");
while (scanf("%s", stu.id) == 1 && stu.id[0] != '#') {
scanf("%s %d", stu.name, &stu.score);
fprintf(fp, "%s %s %d\n", stu.id, stu.name, stu.score);
}
fclose(fp);
// 从文件中读出最后一条记录并输出到屏幕
fp = fopen("a3", "r");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
while (fscanf(fp, "%s %s %d", stu.id, stu.name, &stu.score) == 3);
printf("%s %s %d\n", stu.id, stu.name, stu.score);
fclose(fp);
return 0;
}
```
注意事项:
1. 学号只有两位,因此使用 char 类型数组存储;
2. 姓名最长为 9 位,因此使用 char 类型数组存储;
3. 从文件中读出最后一条记录时,使用 while 循环结构,最后一条记录读取后,fscanf 函数将返回 EOF,循环结束。
阅读全文