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 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件