我目前正在嘗試解決一個迷宮算法,但我已經開始,因爲我似乎無法抓取用戶的字符。我不知道迷宮的大小,直到用戶輸入大小,所以我有一個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
我可能只是做一些非常愚蠢的,但我想不出它出。任何幫助將不勝感激。
對於cin.get(),只能獲得其中的一個字符,並將其視爲char。修改數組[i] [k] = cin.get();到cin >>數組[i] [k]的作品。 –
當我做cin >> array [i] [k]時,它不允許我輸入「」字符。我也需要這些空間。 – user2316718
嘗試cin >> noskipws >> array [i] [k]; –