这是怎么回事?输入4行数据,为什么只显示一行?
第一个程序:
#include <stdio.h>#define SIZE 4struct student_type{ char name[10]; int num; int age; char addr[15];}stud[SIZE];void save(){ FILE * fp; int i; if((fp = fopen("stu_list","wb")) == NULL) { printf("cannot open file\n"); return; } for(i=0;i<SIZE;i++) if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) printf("file write error\n"); fclose(fp);}int main(void){ int i; for(i=0;i<SIZE;i++) scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr); save(); return 0;}
#include <stdio.h>#define SIZE 4struct student_type{ char name[10]; int num; int age; char addr[15];}stud[SIZE];int main(void){ int i; FILE*fp; fp=fopen("stu_list","rb"); for(i=0;i<SIZE;i++) { fread(&stud[i],sizeof(struct student_type),1,fp); printf("%-10s%4d%4d%-16s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr); fclose(fp); } return 0;}
for(i=0;i<SIZE;i++) { fread(&stud[i],sizeof(struct student_type),1,fp); printf("%-10s%4d%4d%-16s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr); }fclose(fp);
[解决办法]
虽然我不会,但是回答的都太笼统,似是而非的,哎~