单链表循环输入结构体数据

img


如图,我创建一个单链表,一个节点需要输入一组学生信息。现想要实现能循环输入,直至输入 # 结束 。求解,第二个while的条件该怎么写? 感谢

是想既写入链表,又写入文件,然后还要循环输入?

你第二个循环想要干嘛?
写入文件吗?
你试试写入条件t!=NULL

你的代码逻辑有问题,第二个while不需要。参考如下:

//功能:输入学生信息,写入文件,并建立链表
    listNode* head = (listNode*)malloc(sizeof(listNode));
    head->next = 0;
    listNode* p = head; //链表头
    struct listNode* t=0while(getchar() != '#')
    {
        printf("请输入学号:\n");
        scanf("%s",p->num);
        //..
        //总分和平均分是计算出来的,不是输入的
        t = (listNode*)malloc(sizeof(listNode));
        t->next = 0;
        p->next = t;
        //写入文件
        fprintf(fp,"");//你自己补全
        p = t;
    }
    //最后申请的p没有用到,这个需要注意