文件读写时想实现的是“学号 姓名 成绩一 成绩二 成绩三 总分”这样的形式,而程序运行后文件里和运行显示的样子同下图一样,会出现两个名字,不知道为什么会出现这种情况,帮解决一下,谢谢

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//学生结构体
typedef struct Student{
char sno[8]; //8位学号
char name[20]; //姓名
float Score[3]; //以此表示数学成绩、英语成绩、C语言成绩
float total; //总分
}STU;
//学生结点
typedef struct node{
STU data; //学生数据
struct node* next;
}Node;
//链表
typedef struct list{
Node* head; //头指针
}List;
//初始化
void InitList(List* ls){
ls->head=NULL;
//以读的方式打开文件,要求文件必须存在
FILE* file=fopen("C:\\Users\\admin\\Desktop\\students'score.txt","rb");
if(file==NULL)
{
printf("文件打开失败!!\n");
return;
}
STU stu;
while(!feof(file)){
fscanf(file,"%s %s %f %f %f %f",&stu.sno,&stu.name,&stu.Score[0],&stu.Score[1],&stu.Score[2],&stu.total);
if(feof(file))
break;
Add(ls,stu);
}
fclose(file); //关闭文件
printf("初始化成功!");
}
void main(){
List ls;
InitList(&ls);
STU stu;
int choice = 0,i;
char sno[8];
Menu();
scanf("%d",&choice);
while(choice!=0){
switch(choice){
case 1:
Display(&ls);
break;
case 2:
printf("请输入要查询的学号:");
scanf("%s",sno);
Inquire(&ls,sno);
break;
case 3:
printf("请输入学号:");
scanf("%s",stu.sno);
printf("请输入姓名:");
scanf("%s",stu.name);
printf("请输入三科成绩:\n");
for(i=0; i<3; i++){
printf("请输入第%d科成绩:",i+1);
scanf("%f",&stu.Score[i]);
}
stu.total=stu.Score[0]+stu.Score[1]+stu.Score[2];
Add(&ls,stu);
printf("学生信息添加成功。\n");
Save(&ls);
break;
case 4:
printf("请输入要删除学生信息的学号:");
scanf("%s",sno);
Delete(&ls,sno);
printf("删除成功!\n");
Save(&ls);
break;
case 5:
printf("请输入要修改某个学生成绩的学号:");
scanf("%s",sno);
Modify(&ls,sno);
Save(&ls);
break;
case 6:
Statistics(&ls);
break;
default:
printf("输入有误请重新输入!!!\n");
break;
}
Menu();
scanf("%d",&choice);
}
}
//菜单
void Menu(){
printf("\n\n");
printf("------------------学生成绩管理系统------------------\n");
printf(" 1.显示学生成绩;\n");
printf(" 2.查询学生成绩;\n");
printf(" 3.添加学生成绩;\n");
printf(" 4.删除学生成绩;\n");
printf(" 5.修改学生成绩;\n");
printf(" 6.统计学生成绩;\n");
printf(" 0.退出程序\n");
printf("----------------------------------------------------\n");
printf("请选择要完成的操作:");
}
//显示
void Display(List* ls){
Node* p=ls->head;
if(p==NULL){
printf("学生信息为空!!!\n");
return;
}
printf("学号 姓名 数学 英语 C语言 总分\n");
while(p!=NULL){
printf("%s %s %.2f %.2f %.2f %.2f\n",p->data.sno,p->data.name,p->data.Score[0],p->data.Score[1],p->data.Score[2],p->data.total);
p=p->next;
}
}