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;
}










~~那时记得储存和读取是分开的~题主这个现象其实我初学文件的时候出现过~记得有种模式是可读可改的~~~