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 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。