关于%c的问题
一次在运行程序时,语句里明明有scanf("%c",&c);
但程序并不让你输入,只是一闪而过
同样有时 c=getchar();也是如此
还有的时候执行
scanf("%c",&c);
输入完毕以后,并不能有效的给c赋值
请问这是为什么?
搜索更多相关的解决方案:
运行程序
----------------解决方案--------------------------------------------------------
我想你%c是什么意思你没搞懂吧
----------------解决方案--------------------------------------------------------
请确定你输入缓冲区的第一个字符究竟是什么。
如果你想跳过'\t','\n',' ',可以这样while(isspace(c=getchar()));
----------------解决方案--------------------------------------------------------
我想你没有清空输入缓冲流吧
----------------解决方案--------------------------------------------------------
使用前先将键盘缓存中的回车符等去处,然后再scanf
----------------解决方案--------------------------------------------------------
在 scanf("%c",&c);的%c前加个空格,因为scanf里的字符型会把前个语句的空格或回车当有效字符输入,所以在%c前加个空格,就不会出现一闪而过的情况了
我也遇到过这种情况!!
----------------解决方案--------------------------------------------------------
LS说的是最简单的方法了```加一个空格OK```
----------------解决方案--------------------------------------------------------
以下是引用qimiao610在2007-7-8 17:49:31的发言:
在 scanf("%c",&c);的%c前加个空格,因为scanf里的字符型会把前个语句的空格或回车当有效字符输入,所以在%c前加个空格,就不会出现一闪而过的情况了
我也遇到过这种情况!!
这个方法倒是挺简单的嘛~~
我以前在循环里用scanf的时候也遇见过这种错误,虽然知道是由于缓冲区引起的,但是当时还是让我们班的人头疼不已。
----------------解决方案--------------------------------------------------------