从键盘输入10个学生的数据,并把它们转存到磁盘上,再从磁盘中读出并输出在屏幕上。
不知道哪里错了
#include <stdio.h>
#define SIZE 10
struct Student{
char name[10];
int num;
int age;
char addr[15];
}stu[SIZE];
struct Student stud[SIZE];
int main(){
printf("please enter date of students:\n");
int i;
for(i=0;i<SIZE;i++)
scanf("%s%d%d%s",stu[i].name,&stu[i].num,&stu[i].age,stu[i].addr);
//保存到磁盘
FILE *fp;
if((fp=fopen("stu.dat","wb"))==NULL){
printf("cannot open file\n");
exit(0);
}
for(i=0;i<SIZE;i++){
if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
//从磁盘文件中读出
FILE *fp1;
if((fp1=fopen("stu.dat","rb"))==NULL){
printf("cannot open file\n");
exit(0);
}
for(i=0;i<SIZE;i++)
fread(&stud[i],sizeof(struct Student),1,fp1);
printf("%-10s %4d %4d %-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
fclose(fp1);
return 0;
}