文件内容读出为链表,求教,和文件内容不一样啊

#include
#include
#include
int n1,n2;
struct stu{
int num;
char name[20];
float score[6];
float sum;
float ave;
struct stu next;
};
struct stu *readfile(FILE *fp){
struct stu *p,*q,*top;
char name[20];
int num,i;
float sum,ave,score[6];
FILE *pc;
if((fp=fopen("www.txt","r"))==NULL){
printf("File open error!");
exit(0);
}
top=(struct stu
)malloc(sizeof(struct stu));
fscanf(fp,"%-10d%-20s",&(top->num),&(top->name));
for(i=0;i fscanf(fp,"%-10.1f",&top->score[i]);
}
fscanf(fp,"%-10.1f%-10.1f",&top->sum ,&top->ave );
q=top;
while(!feof(fp)){
p=(struct stu*)malloc(sizeof(struct stu));
fscanf(fp,"%-10d%-20s",&(p->num),&(p->name));
for(i=0;i fscanf(fp,"%-10.1f",&p->score[i]);
}
fscanf(fp,"%-10.1f%-10.1f",&p->sum ,&p->ave );
p->next=NULL;
q->next=p;
q=p;
}
return top;
}图片说明

文件内容是什么,什么地方不一样,检查你的文件格式和你的scanf的格式是否匹配

注意文件写入和打开的方式是否一致。wb对应rb,w对应r。
具体参照
http://baike.baidu.com/item/c%E8%AF%AD%E8%A8%80fopen%E5%87%BD%E6%95%B0