Я пытаюсь выполнить сканирование массива 2D-символов в моей программе на C++. Проблема в том, что мой код не сканирует весь массив, как ожидалось. Для ex, если я хочу, чтобы он сканировал массив 41 * 41, по какой-то причине он останавливается на 40-й строке, и когда я нажимаю кнопку ввода, он просматривает одну оставшуюся строку. Вот простой фрагмент кода.сканирование 2D-массива символов в C++
#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;
}
компиляции: testProj $g++ main.cpp -o main
, что я здесь отсутствует?
Редактировать: вход < 2D массив символов из 41 * 41>
Ожидаемый результат: отсканированы 40 40
Фактический выход отсканированы 39 40
press enter
....
отсканирован 40 40
Какие входные данные вы даете программе, и какие вы получаете, по сравнению с тем, что вы ожидаете? –
@JoeF отредактировал вопрос со входами и выходами. – shshnk
Вам нужно дать знак конца 'cin', например, пробел или ввести. – songyuanyao