2013-11-04 57 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