是想既写入链表,又写入文件,然后还要循环输入?
你第二个循环想要干嘛?
写入文件吗?
你试试写入条件t!=NULL
你的代码逻辑有问题,第二个while不需要。参考如下:
//功能:输入学生信息,写入文件,并建立链表
listNode* head = (listNode*)malloc(sizeof(listNode));
head->next = 0;
listNode* p = head; //链表头
struct listNode* t=0;
while(getchar() != '#')
{
printf("请输入学号:\n");
scanf("%s",p->num);
//..
//总分和平均分是计算出来的,不是输入的
t = (listNode*)malloc(sizeof(listNode));
t->next = 0;
p->next = t;
//写入文件
fprintf(fp,"");//你自己补全
p = t;
}
//最后申请的p没有用到,这个需要注意