C输入问题

[复制链接]
查看11 | 回复4 | 2013-5-22 15:31:26 | 显示全部楼层 |阅读模式
这个问题说是c的一个小bug也可以。这个老师和教材一般都不说,呵呵一般产生的位置是,上面有输入,下面有%c输入的情况下,这个%c不接收输入,直接跳过这个%c的输入二运行下面的程序产生的原因:就是回车也是字符,那么第二个%c的输入就把第一个数据的回车当初这个%c的输入了,所以%c接受不到数据,而是接受了这个回车。明白了产生的原因,那么处理起来也就很简单了两个方式,一个是吸收,一个是情理缓存,把这个回车符处理掉,不影响%c的输入即可吸收用getchar函数,很简单吧,呵呵清理缓存用fflush(stdin),这个百度一下就知道了也就是在两个输入直接的任意位置加上上面的人一个方式的代码即可...
回复

使用道具 举报

千问 | 2013-5-22 15:31:26 | 显示全部楼层
给你改了一下。仔细看看#includeint main (void){int s1;int s2;char fuhao;printf("请输入第一个数字:");scanf ("%d",&s1);printf("请输入运算符号:");scanf ("%c",&fuhao);...
回复

使用道具 举报

千问 | 2013-5-22 15:31:26 | 显示全部楼层
#includeint main (void){int s1;int s2;char fuhao;printf("请输入第一个数字:");scanf ("%i",&s1);getchar();//加一个getchar这样就可以输入符号printf("请输入运算符号:");scanf ("%c",&fuhao);printf ("请输入第二个...
回复

使用道具 举报

千问 | 2013-5-22 15:31:26 | 显示全部楼层
你试试加一个getchar();过滤掉'\n'...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行