| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 621 人关注过本帖
标题:getchar()的问题
只看楼主 加入收藏
墨香555
Rank: 2
等 级:论坛游民
帖 子:115
专家分:31
注 册:2010-10-21
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:6 
getchar()的问题
#include"stdio.h"
void main()
{
    int sum,i,score,c;
    sum=0;
    i=0;
    printf("是否输入数据?(Y/N)");
    c=getchar();
    while(c=='Y'||c=='y')
    {
        printf("\n请输入分数:");
        scanf("%d",&score);
        getchar();-------------------------------这个getchar();能不能删啊 为什么啊 getchar();是什么用啊
        sum=sum+score;
        i++;
        printf("\n是否继续输入数据(Y/N)");
        c=getchar();
            }
    if(i!=0)
        printf("aver=%5.2lf\n",1.0*sum/i);
    else
        printf("\nno data!");
}
搜索更多相关主题的帖子: getchar 
2010-11-10 23:10
cymtl862327
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
收藏
得分:0 
我的vc++6.0编译显示楼主所指“getchar()”错误,注释掉后,编译无错误,所以我想此处一代码该是无中生有吧!?
2010-11-10 23:58
cymtl862327
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
收藏
得分:20 
哦哦、、不好意思、、楼主,刚才复制代码时犯了点小错误,不过楼主要注意注释符的使用哈!
下面我说说那个getchar(),它是用来从“外界”得到一个字符并暂时储存起来(此时getchar函数有值了),在此处是一会儿付给“c”用的,你可以把它注释起来看看效果和注释前的区别,还可以改变它的位置(比如放在“i++;”后面,只要在“c=getchar();”前面就行,个人认为放于“c=getchar();”前一句是最合理的)试试,自己体会。

2010-11-11 00:23
delong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:126
注 册:2010-6-9
收藏
得分:0 
吸收回车键,不然回车作为数据输入程序然后循环多一次~
2010-11-11 08:31
思恋到心碎
Rank: 2
等 级:论坛游民
帖 子:13
专家分:27
注 册:2010-10-22
收藏
得分:0 
四楼正解,它会吸收回车键
2010-11-11 09:33
韭菜
Rank: 2
等 级:论坛游民
帖 子:51
专家分:94
注 册:2010-9-26
收藏
得分:0 
我认为在这样的情况中  使用getchar()的话会出现比较多的麻烦
他允许输入多个字符进入标准输入缓冲区,这样的话  你下次要用的时候,就必须将输入缓冲进行清空
例如在楼主的程序中输入“y10y20y300”,程序的结果就会自动运行,但是这样的使用是非常危险的

个人见解,欢迎点评
2010-11-11 10:38
cymtl862327
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
收藏
得分:0 
呵呵、、不好意思、、半知半解的我差点误人子弟,原来作用是如此的啊、、
嘿嘿嘿、、、
2010-11-11 12:06
快速回复:getchar()的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012715 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved