c语言学生信息管理系统查找不出已录入信息

问题遇到的现象和发生背景 c语言学生管理系统,查找不出已录入信息,请各位帮忙看下哪里出问题了。
问题相关代码,请勿粘贴截图

//查找学生信息
void seek()
{
struct student stu;
printf("查找学生信息..\n");
if(!fp)
{
printf("请先加载文件后再使用!\n");
system("pause");
}
else
{
rewind(fp);
printf("输入要查找的学生姓名:");
scanf("%s",szName);
p = fread(&stu,sizeof(stu),1,fp);
while(p>0)
{
if(strcmp(stu.StudentName,szName)==0)
{
find++;
printf("%06d,%10s,%2s,%2d\n",stu.StudentId,stu.StudentName,stu.StudentSex, stu.StudentAge);
}
p = fread(&stu,sizeof(stu),1,fp);
}
if(find == 0)
{
printf("不存在学生【%s】\n",szName);
system("pause");
}
else
{
printf("找到%d条信息、n",find);
system("pause");
find=0;
}
}
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

应该是没打开文件,我用你提供的代码加上打开文件的代码,测试发现正常运行。
修改如下:

#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
struct student{
    
    int StudentId;
    char StudentName[10];
    char StudentSex[4];
    int StudentAge;
}; 

void seek()

{
    struct student stu;
    char szName[10];
    int find=0;
    printf("查找学生信息..\n");
    FILE * fp=fopen("students.txt","r");
    if(!fp)
    {
        printf("请先加载文件后再使用!\n");
        system("pause");
    }
    else
    {
        rewind(fp);
        printf("输入要查找的学生姓名:");
        scanf("%s",szName);
        int p = fread(&stu,sizeof(struct student),1,fp);
        while(p>0)
        {
            if(strcmp(stu.StudentName,szName)==0)
            {
            find++;
            printf("%06d,%10s,%2s,%2d\n",stu.StudentId,stu.StudentName,stu.StudentSex, stu.StudentAge);
            }
            p = fread(&stu,sizeof(stu),1,fp);
        }
        if(find == 0)
        {
            printf("不存在学生【%s】\n",szName);
            system("pause");
        }
        else
        {
            printf("找到%d条信息、n",find);
            system("pause");
            find=0;
        }
    }
}

int main(void){
    
    
    struct student s[2]={
        {1,"张三", "男",25 },
        {2,"李四", "男",23 },
    };
    
    FILE * fp = fopen("students.txt","w");
    if(fp==NULL){
        printf("文件打开或创建失败!\n");
        return 0;     
    }
    
    //两个学生结构信息写入文件 
    fwrite(&s[0],sizeof(struct student),1,fp);
    fwrite(&s[1],sizeof(struct student),1,fp);
    fclose(fp);
    
    fp = fopen("students.txt","r");
    if(fp==NULL){
        printf("文件打开失败!\n");
        return 0;     
    }
    struct student s2[2];
    //从文件读取两个学生信息,以验证文件写入正确 
    fread(&s2[0],sizeof(struct student),1,fp);
    fread(&s2[1],sizeof(struct student),1,fp);
    fclose(fp);
    
    //打印从文件读取的学生信息 
    printf("%06d,%10s,%2s,%2d\n",s2[0].StudentId,s2[0].StudentName,s2[0].StudentSex, s2[0].StudentAge);
    printf("%06d,%10s,%2s,%2d\n",s2[1].StudentId,s2[1].StudentName,s2[1].StudentSex, s2[1].StudentAge);
    
    //测试查找学生 
    seek();
    
    return 0;
}

img

学习一下