c语言关于从文件中读取到结构体数组

刚接触c语言,要做一个学生成绩管理系统,要求有保存信息的功能,但是遇到问题了。
这是定义的学生信息的结构体数组:
struct student
{
int num;
char name[20];
int score[3];
float ave;
};
struct student stu[N];
这是写入文件的:

FILE *fp;
if((fp=fopen("student.txt","w"))==NULL)
{
printf("打开文件失败!");
exit(0);
}
fwrite(stu,sizeof(struct student),1,fp);
fclose(fp);
这是从文件中读取的:
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("打开文件失败!");
exit(0);
}
fread(stu,sizeof(struct student),1,fp);
fclose(fp);
但是从文件中读取时遇到了麻烦,看到一些说是需要数据类型转换也不是很懂,求大神指点!

结构体数据的保存通常以二进制形式进行. FILE *fw = fopen(filename,"wb"); 写函数是fwrite(&structdata,sizeof(structdata),1,fw); FILE *fr = fopen(filename,"rb"); 读函数是fread(*structdata,sizeof(structdata),1,fr); 每次读写都是一个完整的结构体数据。追问

我试过了不可以...曾经不知道什么情况成功实现过保存功能一次,没有写二进制形式的b。但是不知道是因为什么成功的。我这有全部的函数,愿不愿意帮我看一下。。。

温馨提示:答案为网友推荐,仅供参考
相似回答