c语言中要求输入数字,但当输入是字符的时候就会出现乱的,是什么原因,有代码。
6个回答
展开全部
choice是int型,你输入一个char型的字符是肯定不行的。如果想要输入字符的话要写成scanf("%c", choice),当然,要把choice声明成char型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入字符时,scanf没有在你输入的内容里找到数字,所以实际choice没有被赋值,choice是个随机数。
更多追问追答
追答
scanf返回值是成功赋值的数据项数,你可以这么改:
while(scanf("%d", &choice)!=1 || (choice !=1 && choice!=2))
printf("\n输入错误,请重新输入:“);
这样,如果输入字符,scanf返回为0,同样满足while条件,进入循环体输出下面那句话。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的输入输出都是int型 但现在给了一个char的值进去 会引起错误的
追问
我知道。所以我才要想解决这个问题,当输入不是数字的时候可以继续输入,直到输入是数字为止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你的输出格式有问题
改成printf("choice==%c\n",choice);试一试
改成printf("choice==%c\n",choice);试一试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询