如何将内容从文件复制到2D向量中? (C ++)

时间:2019-04-19 15:31:46

标签: c++ matrix vector dev-c++

我有一种由文件中的数字组成的地图。我想将所有内容读入我在函数内创建的2D向量中。 我已将向量初始化为0s。 发生的是在编译它时,我打印了vector >矩阵,并且没有任何变化。全部都为零。

编辑::程序未显示打开文件的错误。我认为问题可能出在k,经过一些调试后,k得不到正确的数字。我还从cicle中取出了.eof()。

这是复制功能。它将打开主文件“ casateste.txt”

void copiar(vector<vector<int> > &matriz)  
{
    ifstream origem;
    origem.open("casateste.txt");
    int k;

    while(!origem.eof())
    {
        for(int i=0; i<r; i++)
        {
            k=origem.get();
            for(int j=0; j<c; j++)
            {
                k=origem.get();
                matriz[i][j]=k;
            }
        }
    }       
}

这是打印功能。

void printMapa(vector<vector<int> > &matriz)
{
    for(int i=0; i<r; i++)
    {
        for(int j=0; j<c; j++)
        {
            cout << matriz[i][j];
        }
        cout << endl;
    }
}

初始化矩阵:

main(){
    int i;
    vector<vector<int> > matriz(r, vector<int>(c));
    for(i=0; i<r; i++) {matriz[i].resize(c);}
    copiar(matriz);
    printMapa(matriz);
}

矩阵应该是这样的(在其空白处,用-1或类似的数字填充。

32222222222222222222222224
1          1             1
1          1             1
1  9       1  9          1
1          122222 22222221
122222222 22             1
1      1                 1
1                        1
1 9    1                 1
1      1                 1
1      1                 1
12222222222222622222222221
1          1          9  1
1                        1
1          1             1
1  9       1             1
62222222222222222222222225

打印时它只是零。

0 个答案:

没有答案