0

現在、迷路アルゴリズムを解こうとしていますが、ユーザーから " " 文字を取得できないように見えるため、開始しています。ユーザーがサイズを入力するまで迷路のサイズがわからないので、2次元配列の char** セットアップがあります。" " の取得に cin を使用できないことがわかったので、cin.get または cin.getline のいずれかを使用することを考えましたが、それらを適切に使用できないようです。これは私のコードの問題のあるセクションです:

int main(){
    int size_x;
    int size_y;
    char** array;


    cin >> size_x >> size_y;
    array = new char* [size_y];
    for(int i=0; i < size_y; i++)
            array[i] = new char[size_x];

    //This part seems to not work properly
    for(int i = 0; i < size_y; i++){
            for(int k = 0; k < size_x; k++){
                    array[i][k] = cin.get();
            }
    }

1 文字入力した後、残りの文字は何も考慮されず、プログラムはこの残りの部分をスキップします。これは、size_x に 1 を入力し、size_y に 4 を入力し、後で入力に 1234 を入力した場合の出力です。

1
2
3
done

私はおそらく本当にばかげたことをしているだけですが、それを理解することはできません. どんな助けでも大歓迎です。

4

1 に答える 1

0

代わりに getchar() を使用できます

于 2013-11-04T01:57:44.300 に答える