我正在尝试在我的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
答案 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个非空格字符。因此,此时,您的代码正在等待读取预期的未读非空白输入量。