C语言编程,为什么会多输出一行?0
源程序:
#include
#include
struct stu{
long num;
char name[13];
int math;
int chinese;
int english;
int tottle;
int average;
}stud;
int main(void)
{
FILE * fp;
int i;
if((fp = fopen("f3.txt" , "w")) == NULL)
{
printf("Can't Open File !\n");
exit(0); /*0和1*/
}
for(i = 0;i < 2;i ++)
{
scanf("%ld%s%d%d%d", &stud.num,stud.name,&stud.math,&stud.chinese,&stud.english);
fprintf(fp , "%ld\t%s\t%d\t%d\t%d\n",stud.num,stud.name,stud.math,stud.chinese,stud.english);
}
fclose(fp);
if((fp = fopen("f3.txt" , "r")) == NULL)
{
printf("Can't Open File !\n");
exit(0);
}
printf("学号\t姓名\t数学\t语文\t英语\t总成绩\t平均分\n");
while(!feof(fp))
{
fscanf(fp , "%ld%s%d%d%d",&stud.num,stud.name,&stud.math,&stud.chinese,&stud.english );
stud.tottle = stud.math + stud.english + stud.chinese ;
stud.average = stud.tottle / 3;
printf("%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",stud.num,stud.name,stud.math,stud.chinese,stud.english,stud.tottle,stud.average );
}
fclose(fp);
return 0;
}