...Yolo... 2021-07-04 15:11 采纳率: 100%
浏览 119
已采纳

c++链表通讯录管理系统excel文件导入然后进行保存,救助

我导入一个输出一个是正常的,导入全部后输出变乱码“屯屯屯”之类的

void load_list(Linklist List)
{
    int cnt3 = 0, cnt4 = 0;
    ifstream load("test.xls");
    if (load.is_open())
    {
        cout << endl << "载入文件成功" << endl;
        cout << "新增人员信息如下:" << endl;
        char buffer[256] = { 0 };
        while (load >> buffer)
        {
            LNode* p = new LNode;
            if (cnt4 % 4 == 0)
            {
                insert_list(List, p);//插入节点
                cnt++;
            }
            cnt4++;
            if (0 == cnt3)
            {
                strcpy(p->name, buffer);
                cout << "-------------------" << endl;
                cout << "姓名:" << p->name << endl;
                cnt3 = 1;
            }
            else if (1 == cnt3)
            {
                strcpy(p->num, buffer);
                cout << "学号:" << p->num << endl;
                cnt3 = 2;
            }
            else if (2 == cnt3)
            {
                strcpy(p->tele_num, buffer);
                cout << "电话号码:" << p->tele_num << endl;
                cnt3 = 3;
            }
             else if (3 == cnt3)
            {
                strcpy(p->address, buffer);
                cout << "地址:" << p->address << endl;
                cout << "-------------------" << endl;
                cnt3 = 0;
            }
        }
        load.close();
    }
    else
    {
        cout << "打开文件失败" << endl;
        return;
    }
}

void insert_list(Linklist& List, LNode* node)
{
    node->next = List->next;
    List->next = node;
}

展开全部

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-07-04 15:27
    关注

    在使用load >> buffer前,把buffer置0一下,在while语句的最后加上一句memset(buffer,0,256);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部