写链表相关代码时读取一个txt文件并打印到屏幕结尾出现乱码该怎么解决


//导入文件到链表
int Creatlist(Linklist& L,const char* filename){
    fstream file;
    Linklist p, q;
    p = L;
    file.open(filename);
    if (!file) { 
        cout << "出现错误"<<"\n";
        return 0; }
    file >> head_1 >> head_2 >> head_3;
    while (!file.eof()) {
        q = new LNode;
        file >> q->data.id >> q->data.name >> q->data.score;
        p->next = q;
        p = q;
    }
    p->next = NULL;
    file.close();
    cout << "数据导入成功"<<"\n";
    return 0;
}
void Viewlist(Linklist L) {
    cout << head_1 << "\t\t" << head_2 << "\t\t" << head_3 << "\n";
    Linklist p;
    p = L;
    p = p->next;
    while (p) {
        cout << p->data.id<<"\t\t"<< p->data.name<<"\t\t"<< p->data.score<<"\n";
        p = p->next;
    }
    cout << "全部打印完毕"<<"\n";
}

/*部分运行结果如下:
1033            黄先宏          79
1034            贾成东          92
1035            姜爽              70
-842150451                              -842150451
全部打印完毕

运行结果没问题,就是结尾有两个乱码,这是导入和打印的函数,求解决方式*/

我看了不少答案是说没有读取到文件结尾的\0符,刚开始学也不太清楚这个该怎么读取,可以请教一下大家吗

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。