鱼C论坛

 找回密码
 立即注册
查看: 1859|回复: 1

[技术交流] 请问关于getchar(),这两种用法,为什么有不同的结果

[复制链接]
发表于 2016-3-22 16:02:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yoyo0110 于 2016-3-22 16:07 编辑

请问关于getchar(),这两种用法,为什么有不同的结果
# include <stdio.h>
int main()
{
    char c;
    int l = 0,s = 0,d = 0,o = 0;
    c = getchar();
    while (c  !=  '\n')

    {
        if(c >= 'a' && c <='z' || c >='A'&& c <= 'Z')
            l++;
        else if(c == ' ')
            s++;
        else if(c>='0' && c <= '9')
            d++;
        else
            o++;
      }
    printf("c = %d\n",c);
    printf("l = %d,s = %d,d = %d,o = %d\n",l,s,d,o);
return 0;
}

# include <stdio.h>
int main()
{
    char c;
    int l = 0,s = 0,d = 0,o = 0;
    while ((c = getchar())!= '\n')
    {
        if(c >= 'a' && c <='z' || c >='A'&& c <= 'Z')
            l++;
        else if(c == ' ')
            s++;
        else if(c>='0' && c <= '9')
            d++;
        else
            o++;
    }
    printf("c = %d\n",c);
    printf("l = %d,s = %d,d = %d,o = %d\n",l,s,d,o);
return 0;
}
这两个流程一看是一样的,为什么运行结果不一样??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-22 20:37:47 | 显示全部楼层
前者之执行一次:
c = getchar();
后者每执行一下while循环都会执行以上语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表