如何方便的读取一个文件

#include
struct student
{
int sno;
char name[20];
char sex[3];
int age;
};
int main()
{
student s[100];
int n;
printf("input n:");
scanf("%d",&n);
FILE* fp;
fp=fopen("student2.dat","wb");
for(int i=0;i<n;i++)
{
printf("学号:");scanf("%d",&s[i].sno);
fflush(stdin);
printf("姓名:");gets(s[i].name);
printf("性别:");gets(s[i].sex);
printf("年龄:");scanf("%d",&s[i].age);
fwrite(&s[i],sizeof(student),1,fp);
}
fclose(fp);
return 0;
}
我要如何把这个文件读出来啊,编程小白,不知道怎么算出n值,求解答,谢谢各位大神啦!!

如果可以,student s[100]; 所有数据都初始化为 0, 读出来 全是 0 就知道结束了

不然就要智能分析了, 因为 学号,性别,年龄 都是 有一定范围(特征)的, 不合法 就结束