当前位置: 代码迷 >> C语言 >> 关于%c的问题
  详细解决方案

关于%c的问题

热度:225   发布时间:2007-07-08 12:43:40.0
关于%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的时候也遇见过这种错误,虽然知道是由于缓冲区引起的,但是当时还是让我们班的人头疼不已。


----------------解决方案--------------------------------------------------------
  相关解决方案