【问题标题】:How do I read from a file and store the content in a dynamic 2d array and display it in a grid format?如何从文件中读取内容并将内容存储在动态二维数组中并以网格格式显示?
【发布时间】:2019-09-11 07:31:44
【问题描述】:

我有一个文件 (input2.txt),如下所示:(https://imgur.com/a/Ey4qBpw)

我想打开该文件并将其存储在二维动态数组中。这是在创建动态数组的函数 main 中(不要问为什么它是动态的,即使它已定义,idk 为什么):(https://imgur.com/a/k0W2189)

这里是打开文件,处理它,并(尝试)将内容放入数组中:(https://imgur.com/a/orA2Atq

我的问题的第二部分是如何向用户显示该数组?这就是我拥有的那个功能:(https://imgur.com/a/11cHp2K)

这些是我拥有的图书馆:(https://imgur.com/a/EgQPxM2)

最后,这是我目前得到的输出:(https://imgur.com/a/IBLEX24)

如果您需要任何澄清,请询问我。感谢您的帮助!

【问题讨论】:

    标签: c++ arrays dynamic 2d


    【解决方案1】:

    我不确定您的问题,但 vector 可以为您完成动态工作。

    这是我想你问的代码。

    #include <iostream>
    #include<vector>
    
    int main()
    {
    freopen ("input.txt","r",stdin);
    std::vector<std::vector<int> > vect;
    
    int n,m;
    std::cin>>n>>m;
    
    for(int i=0;i<n;i++){
        std::vector<int> v;
        int t;
        for(int j=0;j<m;j++){
            std::cin>>t;
            v.push_back(t);
        }
        vect.push_back(v);
    }
    
    for(int i=0;i<n;i++){
    
        for(int j=0;j<m;j++){
    
            std::cout<<vect[i][j]<<" ";
        }
        std::cout<<std::endl;
    }
    
    return 0;
    }
    

    请告诉我这是否有效。

    【讨论】:

    • 现在好多了。虽然简单地打开 std::ifstream 而不是 freopen() 可能是一个更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2015-04-16
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多