代码可以正常运行,但是运行之后再打印链表你的数据的时候显示无数据,我感觉是插入的时候失败了,但不知道问题在哪里

这个函数这样写,供参考:
void Input(SLTNode** pphead)
{
SLTNode* ptra = NULL, * newnode = NULL;
FILE* fp;
fp = fopen("D:\\桌面\\student.txt", "r");
if (fp == NULL) {
printf("无法打开文件!\n");
return;
}
if ((*pphead))
for (ptra = (*pphead); ptra->next; ptra = ptra->next);
while (1) {
newnode = (SLTNode*)malloc(sizeof(SLTNode));
newnode->next = NULL;
if (fscanf(fp, "%lld %s %s %d %d %d %lf %lf %lf", &newnode->student.num, newnode->student.name, newnode->student.sex,
&newnode->student, birthday[0], &newnode->student.birthday[1], &newnode->student.birthday[2],
&newnode->student.score[0], &newnode->student.score[1], &newnode->student.score[2]) != 9) {
free(newnode);
break;
}
if (!(*pphead))
(*pphead) = newnode;
else
ptra->next = newnode;
ptra = newnode;
}
fclose(fp);
}