用C ++扫描2D char数组

时间:2016-05-09 10:38:43

标签: c++ arrays

我正在尝试在我的C ++程序中扫描2D char数组。问题是我的代码没有按预期扫描整个数组。例如,如果我想要它扫描一个41 * 41阵列,那么由于某种原因它停在第40行,当我按下回车时它会扫描剩下的一行。这是一段简单的代码。

#include <iostream>
char G[101][101];
int N,M;
using namespace std;
int main(int argc, const char * argv[]) {
    cin >> M >> N;
    cout << "m n scanned" << M << N << "\n";
for (int t =0;t<M;t++) {
    for (int j = 0;j<N;j++) {
        cin >> G[t][j];
        cout << "scanned " << t << " " << j << "\n";
    }
}
return 0;
}

编译:{{1​​}}

我在这里错过了什么?

修改输入 41 41 &lt; 2D char数组41 * 41&gt;

预期输出: 扫描40 40

实际输出 扫描39 40
按enter

...

扫描40 40

1 个答案:

答案 0 :(得分:-1)

适合我。

输入文件,通过管道连接到标准输入上执行的代码:

41 41
*****************************************
*****************************************

[ 39 more rows of the same ]

输出:

m n scanned4141
scanned 0 0
scanned 0 1
scanned 0 2

...

scanned 40 36
scanned 40 37
scanned 40 38
scanned 40 39
scanned 40 40

显示的代码没有任何问题,按原样使用。

我怀疑您忘记了operator>> char XMLHttpRequest上的XMLHttpRequest除了换行符之外还要跳过任何空格的细节,输入矩阵包含被忽略的空格,以及代码继续查找要读取的41 * 41个非空格字符。因此,此时,您的代码正在等待读取预期的未读非空白输入量。