對不起,如果這是一個愚蠢的問題。顯示一個2D動態數組
這裏是我的代碼:
#include<iostream>
using namespace std;
int main()
{
int columns, rows;
char **map;
cin>>columns;
cin>>rows;
/*creats array of pointers rows tall*/
map = new char*[rows];
/*creats array of chars columns tall*/
for(int i=0; i<rows; i++)
map[i] = new char[columns];
//populate map with input
map[0][0] = cin.get();
for(int j=0; j<rows; j++)
for(int i=0; i<columns; i++)
{
if (cin.peek() == '\n')
cin.ignore(256, '\n');
else
map[j][i] = cin.get();
}
//DISPLAY
cout<<endl;
for(int j=0; j<rows; j++)
{
for(int i=0; i<columns; i++)
{
cout<<map[j][i];
}
}
return 0;
}
用戶將輸入類似:
7 4
#######
#S# #
# #E#
#######
,我想將它輸出。不過我的出現如下:
#######
#S#
## #
E#####
有什麼想法?
奇怪的部分是該行'映射[0] [0] = cin.get( );'。你爲什麼只填充'map [0] [0]'一次,以後再填充幾行?我會刪除該線的初學者。 – john
如果使用cin.get()填充map [0] [0],那麼爲什麼要在for循環中覆蓋它? – jt234