程序不读取和打印字符

Program not reading and printing character

这是一个打印由一个字符组成的边=整数的正方形的程序。

例如:如果输入的字符是 #:

则输出

但是它不读取用户输入,因此也无法以正方形打印。

查看下面的代码:

    //printing of square of any character problem 5.20
    #include<stdio.h>

    int main( void )
{
     int i, h;
     int side;
     char fillCharacter;

     printf("Enter the side:\n");
     scanf("%d", &side);

     printf("Enter the character with which to make a square of side %d:\n", side );
     scanf("%c", &fillCharacter );

     for( h = 1; h <= side; ++h ) {

       for( i = 1; i <= side; i++ ) {

          printf( "%c ", fillCharacter );
     }
     printf("\n");
}
return 0;
}

程序运行为-

也就是说,它没有从用户那里获取字符值,尽管它在源代码中存在这一行。

请帮助解决问题。

在第二个scanf()中加一个space

scanf(" %c", &fillCharacter );

这是必需的,因为当您输入第一个 scanf() 的数字时,该数字被读入 side 但换行符 \n 留在输入缓冲区中。