Scanf没有输入字符

时间:2017-04-16 12:54:18

标签: c

这是我的代码,将计数作为输入,然后将该数量的城市作为输入 我想打印从该字母开始的所有城市,但程序在将字符作为输入之前结束。 但它不需要字符输入

#include <stdio.h>
void main()
{

char a[20][10];
char ch;
int i,n;

printf("Enter nos of cities\n");
scanf("%d",&n);
for ( i = 0; i < n ; i++)
{
    scanf("%s",a[i]);
}
printf("\n");

printf("Enter 1st character\n");
scanf("%c", &ch);
for ( i = 0; i < n ; i++)
    if(ch==a[i][0])
        printf("%s\n",a[i]);    


}
  

OUPUT:

Enter nos of cities
3
asd
zxc
qw

Enter 1st character

2 个答案:

答案 0 :(得分:2)

使用scanf(" %c", &ch);

将前一个输入的输入作为输入。因此,请在%c之前添加一个空格。

答案 1 :(得分:0)

在第15行打印换行符后,只需添加一行getchar();即可 因为printf("\n")使用换行符字符scanfgetchar()在这里跳过(吃掉)换行符。