一个有关C语言scanf的问题 运行到scanf()时还没有输入,为什么自动执行下面的语句了?

我的main函数式这样的intmain(){chari;printf("Hellodearcustomerwelcometouseflightsystem!\n");wh... 我的main函数式这样的
int main()
{
char i;
printf(" Hello dear customer welcome to use flight system! \n");
while(1)
{
printf("**************************************************************************\n");
printf(" choose the function you want:\n");
printf(" 1.check your ticket wether it has been booked successfully or not.\n");
printf(" 2.reserve a new ticket:\n");
printf(" 3.cancel a ticket:\n");
printf(" 4.print all the booked tickets' info:\n");
printf(" 5.exit the system.\n");
printf("**************************************************************************\n");
printf("\n");
scanf("%c",&i);
printf(" > <||| i is:%c\n",i);
if(i=='1')
{
check(A);
}
else if(i=='2')
{
reserve(A);
}
else if(i=='3')
{
printf("Please input the ticket number: ");
char ticket_no[10];
scanf("%s",ticket_no);
cancel(A,ticket_no);
}
else if(i=='4')
print(A);
else if(i=='5')
{
break;
}
else
{
printf("A incorrect choice please make another choice!\n");
continue;
}

}
运行结果是这样的:

我就不明白 明明还没输入i呢 为什么程序就往下执行了呢?求大神指导(鞠躬)~
展开
 我来答
renshijie1018
2013-10-27 · TA获得超过1006个赞
知道小有建树答主
回答量:1063
采纳率:94%
帮助的人:965万
展开全部
%c 让你输入的是字符,包括空格,换行符。而我们按下回车键的时候就是一个换行符
需要先getchar();去掉换行符。懂?
不懂请追问,懂了求accept
电脑我懂你团队为您服务
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式