Comment numériser dans un tableau de caractères 2D sans scanner dans les caractères d’entrée / espace?

Donc, je dois faire un programme de labyrinthe, et pour commencer je dois scanner dans le labyrinthe à un tableau 2D. Le problème se pose lorsque je vais mettre les caractères dans le tableau, lorsque les caractères enter et Space occupent toujours le premier emplacement du tableau …

Voici mon code:

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; } 

Et le résultat est:

Avec le caractère entrer:

3

3

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xx

xxx

xxx

Avec un espace:

3

3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xx

xxx

xxx

sans rien: (celui-ci fonctionne)

3

3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxx

xxx

xxx

Bon, comme l’ a commenté user3121023 , en plaçant un espace avant le %c dans
scanf(" %c",&maze[j][i]); travaux!

L’espace avant le% ignorera les espaces, tels que l’espace, et entrera.

Vous pouvez utiliser getchar() et réessayer '\n' . scanf() semble trop cher.

 for(i=0;i