MJSSG 2023-01-13 11:02 采纳率: 100%
浏览 21
已结题

使用stringstream成功将文件中数据存入自定义类型数组,而无法存入与成员类型相同的二维数组,求解惑

使用类创建许多的个unsigned int类型成员,并使用stringstream将文件中的数据传入类中,文件中的数字数据全部成功转为unsigned int类型数据存入,stuarr为创建的自定义类型数组(此次成功读取到数据并存入数组中)
this->stuarr = new Student [this->datasum];

    fstream ifs;
    ifs.open(FILENAME, ios::in);
    string temp;
    getline(ifs, temp);//除去首行
    int index = 0;

    while (!ifs.eof())//判断文件是否读取完
    {
        char data[1024];
        ifs.getline(data, 1024);

        //跳过空行
        if (strlen(data) == 0)
            break;

        stringstream ss(data);
        ss >> stuarr[index].number >> stuarr[index].name >> stuarr[index].English >> stuarr[index].Marx >> stuarr[index].Politics >> stuarr[index].Geogle >>
            stuarr[index].Metorlogy >> stuarr[index].Math >> stuarr[index].Physics_test >> stuarr[index].Physics >> stuarr[index].Algebra >> stuarr[index].Math_analysis >>
            stuarr[index].MATLAB >> stuarr[index].Math_logic >> stuarr[index].Measure_practice >> stuarr[index].C;
        index++;
    }
    //关闭文件
    ifs.close();

为了减少代码的量,准备将文件中的数据存入一个二维数组中,不再创建自定义类型数组,定义以下二维数组

    using uint = unsigned int;
    uint** dataarr;
    dataarr = new uint* [datarow];
    for (int i = 0; i < datarow; i++)
    {
        dataarr[i] = new uint[dataline - 2];
    }

    fstream ifs;
    ifs.open(FILENAME, ios::in);

    string temp;
    getline(ifs, temp);//除去第一行

    int index = 0;

    while (!ifs.eof())//判断文件是否读取完
    {        char data[1024];
        ifs.getline(data, 1024);

        //跳过空行
        if (strlen(data) == 0)
            break;

        stringstream ss(data);
        ss >> this->numberarr[index];
        ss >> this->namearr[index];

        for (int i = 0; i < dataline - 2; i++)
        {
            ss >> dataarr[index][i];
        }

    }
    //关闭文件
    ifs.close();

但使用二维数组却无法将文件中的数据转为unsigned int型

img

求解惑

  • 写回答

1条回答 默认 最新

  • 浪客 2023-01-14 23:05
    关注

    第三段代码的循环中index一直没有变化。

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

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月13日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c