...Yolo...
2021-07-04 23:11
采纳率: 100%
浏览 45

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 23:27
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题