2013-11-04 59 views
0

我目前正在嘗試解決一個迷宮算法,但我已經開始,因爲我似乎無法抓取用戶的字符。我不知道迷宮的大小,直到用戶輸入大小,所以我有一個char **設置爲2d數組。我發現我不能使用cin獲取「」,所以我想使用cin.get或cin.getline,但似乎無法正確使用它們。這是我的代碼有問題的部分:Char ** +輸入「」字符

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個字符,剩餘的字符被當作沒事,程序跳過過去的這個剩餘部分。這是因爲當我輸入一個1 size_x和4 size_y輸出,我把1234的輸入算賬:

1 
2 
3 
done 

我可能只是做一些非常愚蠢的,但我想不出它出。任何幫助將不勝感激。

+0

對於cin.get(),只能獲得其中的一個字符,並將其視爲char。修改數組[i] [k] = cin.get();到cin >>數組[i] [k]的作品。 –

+0

當我做cin >> array [i] [k]時,它不允許我輸入「」字符。我也需要這些空間。 – user2316718

+0

嘗試cin >> noskipws >> array [i] [k]; –

回答

0

您可以使用getchar()代替

+0

不getchar()返回一個int?我需要將char **數組更改爲int **數組嗎? – user2316718