| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:刚学C语言,遇到了一个很不解的问题!!!
取消只看楼主 加入收藏
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
刚学C语言,遇到了一个很不解的问题!!!
来自C语言程序设计里面的一道例题:
用的是gcc编译
#include<stdio.h>
main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++ nc;
    printf("%ld\n", nc);
}
当我按照上代码执行,然后输入abc并没有按照预期的那样输出3而是无任何输出,然后我这样修改了代码,如下:
#include<stdio.h>
main()
{
    long nc;
    int C;

    nc = 0;
    while ((C == getchar()) != EOF){
        ++ nc:
        putchar(nc);
    }
    printf("%ld\n", nc);
}
再次执行输入abc输出的结果是:
1234

[ 本帖最后由 clownsmail 于 2013-12-7 14:10 编辑 ]
搜索更多相关主题的帖子: 程序设计 include C语言 
2013-12-07 14:08
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 2楼 韶志
哦!明白了,还以为回车键是结束呢。3q

怀念 ,一种坚强 !
2013-12-07 20:11
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 3楼 pangshch
恩恩,我把结束标志搞错了,谢谢

怀念 ,一种坚强 !
2013-12-07 20:12
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 2楼 韶志
Ctrl+Z不行,下面的是截图
图片附件: 游客没有浏览图片的权限,请 登录注册

怀念 ,一种坚强 !
2013-12-07 21:52
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 3楼 pangshch
#include<stdio.h>
main()
{
    int c;
    while ((c = getchar()) != EOF)
        putchar(c);
}
为什么在这个例程里,当执行代码输入abc回车则输出abc,判断putchar(c)是否执行的条件相同,在语句getchar(c)没有得到任何输入便输出-1 即EOF,为什么这里回车可以,上面那个却行不通

怀念 ,一种坚强 !
2013-12-07 22:10
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 3楼 pangshch
while (getchar() != '\n')
ok

怀念 ,一种坚强 !
2013-12-07 22:21
clownsmail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-12-7
收藏
得分:0 
回复 9楼 shuanen_com
是的,

怀念 ,一种坚强 !
2013-12-07 23:02
快速回复:刚学C语言,遇到了一个很不解的问题!!!
数据加载中...
 
   



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

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