回 帖 发 新 帖 刷新版面

主题:[讨论]关于scanf函数,有一个问题请教。标题要长~~~~~~~~~~~~~~~~~~~~~~~

    for(;;)
    {
        printf("\nEnter a value:");
        scanf("%lf",&value);
        total+=value;
        ++count;

        printf("Do you want to enter another value?(Y or N):");
        [color=FF0000]scanf("%c",&answer);[/color]        

        if(tolower(answer)=='n')
        break;

    }

==================================================================================

很简单的一段程序,就是从键盘输入几个数字,然后计算平均值。
但是有个问题,标红的那段scanf函数,如果直接那样写的话,这个语句就不执行,直接进行下一次循环了。
但是如果在%c前面加个空格的话,就可以正常执行了。不太明白为什么,请教一下。

回复列表 (共3个回复)

沙发


其实这个问题,我看到好几个问了,lz可以多看看别人的问题、、先自己想想,加上百度也不错的……
[url]http://www.cnblogs.com/FCWORLD/archive/2010/12/04/1896511.html[/url]

板凳

[quote]
其实这个问题,我看到好几个问了,lz可以多看看别人的问题、、先自己想想,加上百度也不错的……
[url]http://www.cnblogs.com/FCWORLD/archive/2010/12/04/1896511.html[/url][/quote]

多谢来了,原来scanf读字符时,回车留在了缓冲区
那针对我的例子,%c前加了一个空格是不是就是为了容纳回车字符?

3 楼

scanf("\n%c",&ch)这个毫无疑问,我还真不明白为什么空格也行、、等待高手解释啊。

我来回复

您尚未登录,请登录后再回复。点此登录或注册