如何在不输入/空格字符的情况下扫描到2d char数组?
所以我必须制作一个迷宫程序,并开始我必须在迷宫中扫描到2darrays。 当我将chars放入数组时,当输入char和空格char总是占用数组中的第一个插槽时,会出现问题…
这是我的代码:
int main(){ int row, col; int i,j,k,l; scanf("%d", &row); scanf("%d", &col); char** maze = (char**) calloc(row, sizeof(char*)); for ( k = 0; k < row; k++ ) { maze[k] = (char*) calloc(col, sizeof(char)); } for(i=0;i<row;i++){ for(j=0;j<col;j++){ scanf("%c",&maze[j][i]); } } for(k=0;k<row;k++){ for(l=0;l<col;l++){ printf("%c", maze[k][l]); } printf("\n"); } return 0; }
输出是:
使用enter char:
3
3
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XX
XXX
XXX
有空间:
3
3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XX
XXX
XXX
没有任何东西:(这个有效)
3
3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXX
XXX
XXX
好的,所以当user3121023 评论时 ,在%c
之前放置一个空格
scanf(" %c",&maze[j][i]);
作品!
%之前的空格将跳过前导空格,例如空格和输入。
您可以使用getchar()
并在'\n'
上重试。 scanf()
似乎有点矫枉过正。
for(i=0;i