学生管理系统,存储和读取问题?

用qtcreator写的c语言写学生管理系统,可以存储数据,但是读取不了(如图),请问是什么原因?
存储和读取函数代码如下:
void save(void)
{
int i=0;
FILE *f;
char filename[20];
printf("Enter a file name\n");
scanf("%s",&filename);

if((f=fopen(filename,"a+"))==NULL){
    printf("无法打开,文件为空\n");
}
while(i<n)
{
    fprintf(f,"%s%d\n%s%s\n%s%s\n%s%d\n%s%d\n%s%d\n","学号:",p[i].num,"姓名",p[i].name,"性别",p[i].sex,"计算机:",p[i].score[0],"数学:",p[i].score[1],"英语:",p[i].score[2]);
i++;
}
fclose(f);

}

void readStu(void)
{
int i;
FILE *f;
while(!feof(f))
{
fread(&p[i],sizeof(Student),1,f);
i++;
}
fclose(f);
printf("---------------------------\n");
int n;
for(n=0;n<i-1;n++){
printf("%s%d\n%s%s\n%s%s\n%s%d\n%s%d\n%s%d\n","学号:",p[i].num,"姓名",p[i].name,"性别",p[i].sex,"计算机:",p[i].score[0],"数学:",p[i].score[1],"英语:",p[i].score[2]);
}
printf("---------------------------\n");
}图片图片

FILE *f;
然后你没有打开文件的操作,f也没有初始化

你这个竟然用的是c写的,为啥不用更高级的语言呢,比如php、java等

函数中你没有打开那个文件,怎么读数据?