求各位大大们指导指导,根据文件的大小除以结构体的长度,得到文件中结构体的个数
本实验需要建立两个程序:
第一个程序完成学生信息的录入和存储:
1) 定义一个结构体表示学生的信息(包含学生的姓名,学号,数学成绩,英语成绩,语文成绩);
2)动态分配内存存储全班同学的信息,全班同学的人数和每名同学的信息从键盘输入;
3)将全班同学的信息存储在文件中(以块方式写入文件);
第二个程序完成学生信息的读入和查找:
1)动态分配内存存储全班同学的信息,动态数组的长度通过文件的长度除以学生结构体的长度确定;
2)从键盘输入一个需要查找的学生学号,在动态数组中进行查找,若找到该同学,输出其所有课程成绩;
看了一下得到文件大小的方法,但是怎么写都有问题
struct node
{
char name[10];
int num;
int math;
int english;
int chinese;
};
FILE *fp;
struct node q;
if((fp=fopen("aa.txt","rb+"))==NULL){
printf("文件读入失败\n");
return 0;
}
for(int i = 1;i <= c;i++){
scanf("%s%d%d%d%d",q.name,&q.num,&q.math,&q.english,&q.chinese);
fwrite(&q,sizeof(q),1,fp);
}写入文件
fseek(fp,0L,SEEK_END);
num = ftell(fp)/sizeof(struct q);这个num最后应该等于c吧,为什么最后的数很大呢,求指教,是不是和二进制的读写有关。。在这个不是太懂