将带有空格的2d数组读取为char

Reading a 2d array with blank spaces into char

本文关键字:数组 读取 char 2d 空格      更新时间:2023-10-16

我有一个2d数组,它表示一个地图/迷宫,如下所示:

+-+-+-+-+-+
|         |
+-+ +-+ + +
|     | | |
+ +-+-+ + +
| |     |  
+-+ +-+-+-+

我有以下代码来阅读地图:

char mapa[hlimit][wlimit];
for(int j=0;j<hlimit;j++)
    cin>>mapa[j];

也尝试过这个:

char mapa[hlimit][wlimit];
for(int j=0;j<hlimit;j++)
    for(int k=0;k<wlimit;k++)
        cin>>mapa[j][k];

无论哪种方式,for循环都在我进入整个地图之前结束。我试着用点替换地图中的空白,输入效果完美。那么,如何使用空格进行输入呢?我也尝试了cin.getline(mapa[j],wlimit),但对我不起作用。

WhozCraig提供的建议使用get()的答案完美无瑕。这是我的代码:

char mapa[hlimit][wlimit];
for(int j=0;j<hlimit;j++)
{
    for(int k=0;k<wlimit;k++)
        mapa[j][k]=cin.get();
    cin.get();
}