| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:关于while循环判断条件中用getchar为什么可以打一串数字
只看楼主 加入收藏
lihuaye
Rank: 1
等 级:新手上路
帖 子:23
专家分:2
注 册:2012-3-10
结帖率:66.67%
收藏
已结贴  问题点数:5 回复次数:4 
关于while循环判断条件中用getchar为什么可以打一串数字
程序代码:
#include<stdio.h>
int main(void)

 {
     //输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
    char ch;
     int char_num=0,kongge_num=0,int_num=0,other_num=0;
     while((ch=getchar())!='\n')//这个地方不懂了,是输入一个字符马上进行循环还是?
    {
         if(ch>='a'&&ch<='z'||ch<='z'&&ch>='a')
         {
             char_num++;
         }
         else if(ch==' ')
         {
             kongge_num++;
         }
         else if(ch>='0'&&ch<='9')
         {
             int_num++;
         }
         else
         {
             other_num++;
         }
     }
     printf("字母= %d,空格= %d,数字= %d,其它= %d\n",char_num,kongge_num,int_num,other_num);
     return 0;

 }
2013-11-14 12:56
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:0 
去查下API就知道了哦。。。

~~~~~~我的明天我知道~~~。
2013-11-14 13:15
Belin
Rank: 2
等 级:论坛游民
帖 子:5
专家分:18
注 册:2013-11-14
收藏
得分:5 
首先,要知道 键盘缓冲区;就是从键盘输入的操作会暂时放在某个区域,包括空格'\0'、'\n'等;当需要键盘输入时,会首先读取缓冲区的字符,若缓冲区没有内容则等待用户键盘输入。如你发的程序,你输入‘c’然后确定,这时缓冲区存入的是 ‘a\n’,第一次while中getchar()读走“a”,第二次while中getchar()读的是“\n”。所以你的程序输入时要整串输入。如果你想一个一个输入,要加多一个getchar(),读走'\n'。

一万年不改变。。。
2013-11-14 13:28
lihuaye
Rank: 1
等 级:新手上路
帖 子:23
专家分:2
注 册:2012-3-10
收藏
得分:0 
回复 3楼 Belin
貌似有点明白了
2013-11-14 18:29
lihuaye
Rank: 1
等 级:新手上路
帖 子:23
专家分:2
注 册:2012-3-10
收藏
得分:0 
回复 3楼 Belin
貌似有点明白了
2013-11-14 18:29
快速回复:关于while循环判断条件中用getchar为什么可以打一串数字
数据加载中...
 
   



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

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