#include <stdio.h> #include <stdlib.h> typedef struct student { int sno; char name[20]; int score[3]; } Student; int main() { FILE *fp; Student stu; fp=fopen("f1.dat","wb"); if(fp==NULL) {printf("cannot open"); exit(1); } int sno; scanf("%d",&sno); while(sno!=0) { stu.sno=sno; scanf("%s",&stu.name); scanf("%d %d %d",&stu.score[0],&stu.score[1],&stu.score[2]); fwrite(&stu,sizeof(struct student),1,fp); scanf("%d",&sno); } fclose(fp); return 0; }这串代码中存储的数据如何读出来
时间: 2024-01-28 08:04:06 浏览: 68
要读取这段代码中存储的数据,可以使用 fread 函数从二进制文件中读取每个学生的信息并打印出来。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct student {
int sno;
char name[20];
int score[3];
} Student;
int main() {
FILE *fp;
Student stu;
fp = fopen("f1.dat", "rb");
if (fp == NULL) {
printf("cannot open");
exit(1);
}
// 循环读取每个学生的信息,并打印输出
while (fread(&stu, sizeof(struct student), 1, fp) == 1) {
printf("sno: %d\n", stu.sno);
printf("name: %s\n", stu.name);
printf("score1: %d, score2: %d, score3: %d\n", stu.score[0], stu.score[1], stu.score[2]);
printf("\n");
}
fclose(fp);
return 0;
}
```
在这个示例代码中,我们首先打开了名为 f1.dat 的二进制文件,并循环使用 fread 函数读取每个学生的信息。如果 fread 函数返回值为 1,说明成功读取了一个学生的信息,就打印输出该学生的学号、姓名和三门课程成绩。最后关闭文件并返回 0。
阅读全文