我有一种由文件中的数字组成的地图。我想将所有内容读入我在函数内创建的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
打印时它只是零。