程序无法读取和打印字符

时间:2015-10-18 08:23:45

标签: c printf scanf getchar

这是一个打印由角色组成的 side = integer 的Square的程序。

例如:如果输入的字符为#,则输出:

Example output

然而,它不会读取用户输入,因此也无法在正方形中打印。

请参阅以下代码:

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

该程序以 -

运行

Output

也就是说,它不会从用户那里获得字符值,尽管源代码中存在该行。

请帮助纠正问题。

1 个答案:

答案 0 :(得分:1)

在第二个scanf()

中添加空格
scanf(" %c", &fillCharacter );

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