程序不读取和打印字符
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
留在输入缓冲区中。
这是一个打印由一个字符组成的边=整数的正方形的程序。
例如:如果输入的字符是 #
:
但是它不读取用户输入,因此也无法以正方形打印。
查看下面的代码:
//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
留在输入缓冲区中。