有3个学生,每个学生的数据包括学号(num),姓名(name[20]), 性别 (sex), 三门课的成绩 (score[3]), 要求从键盘输入这3个同学的数据,然后调用fun1函数将3个同学的学号、姓名、性别 和总分数据以二进制形式写入文件out.dat中,再调用fun2函数从文件out.dat中读取数据,并输出到屏幕上。
1条回答 默认 最新
qtchen_1988 2020-06-13 17:54关注#include <stdio.h> #include <string.h> #include <stdlib.h> struct Stu{ int num; char name[20]; int sex; float score[3]; }; int fun1() { FILE *fp = fopen("out.dat","wb"); if(!fp) { printf("无法打开文件"); return -1; } struct Stu stu[3]; memset(stu,0x0,sizeof(struct Stu)*3); for(int i=0;i<3;i++) { //从键盘读取信息... gets(stu[i].name); /* *还有其他输入详细见 https://ask.csdn.net/questions/1083462 * */ fwrite(&stu[i],sizeof(struct Stu),1,fp); } fclose(fp); return 0; } int fun2() { FILE *fp = fopen("out.dat","rb"); if(!fp) { printf("无法打开文件"); return -1; } struct Stu stu[3]; memset(stu,0x0,sizeof(struct Stu)*3); //读取信息... printf("******************Output*****************\n"); for(int i=0;i<3;i++) { fread(&stu[i],sizeof(struct Stu),1,fp); printf("%s\n",stu[i].name); } fclose(fp); return 0; } int main(){ int ret = fun1(); if(ret != -1) { fun2(); } return 0; }解决 无用评论 打赏 举报