fread函数读出来有问题 求解
打开和写都没有问题 但是读取后 输出都是0 打开了生成的dat文件 成功写入了 就是读不出来 附上代码 虚心学习
程序代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 struct Student{ char num[15]; //学号 char name[15]; //姓名 char major[10]; //专业(computer,software,network) int classNo; //班级(1-2) int score[3]; //3门课的成绩(0-2) }; typedef struct Student STU; int main() { STU student[N]; STU output = {}; char input[20]; int size = sizeof(STU); int i; FILE * fl; printf("开始录入成绩\n"); printf("请按照 学号 姓名 专业 班级 computer成绩 software成绩 network成绩 的顺序输入,数据用空格隔开\n"); for(i = 0;i < N;i++) { printf("请输入第%d名同学的各项信息\n",i + 1); /*开始录入成绩*/ scanf("%s %s %s %d %d %d %d",student[i].num,student[i].name,student[i].major,&student[i].classNo,&student[i].score[0],&student[i].score[1],&student[i].score[2]); } printf("请输入您要保存的数据文件名:"); scanf("%s",input); if((fl = fopen(input,"wb")) == NULL) { fputs("Can't open file\n",stderr); exit(1); } rewind(fl); for(i = 0;i < N;i++) { fwrite(&student[i],size,1,fl); } for(i = 0;i < N;i++) { fread(&output,size,1,fl); printf("%d\n",output.classNo);//测试 只读取一个整形数据 } fclose(fl); return 0; }