C语言用fscanf()函数从文件读出时字符时,为什么会多重复读取最后一个字符串?

如题所述

while(!feof(fp)){
q=(stu *)malloc(sizeof(stu));
fscanf(fp,"%s%s%d",&num,&name,&classnum);
strcpy(q->num,num);
strcpy(q->name,name);
q->classnum=classnum;
for(i=0;i<3;i++){
fscanf(fp,"%lf",&grade[i]);
q->grade[i]=grade[i];
}
}

试试行吗?追问

num和name都是数组名

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-25
你把程序贴出来追问

while(!feof(fp)){
q=(stu *)malloc(sizeof(stu));
fscanf(fp,"%s%s%d",num,name,&classnum);
strcpy(q->num,num);
strcpy(q->name,name);
q->classnum=classnum;
for(i=0;igrade[i]=grade[i];
}
}
修改这个即可!

相似回答