标题:字符计数问题!
只看楼主
michaelyj
Rank: 1
来 自:上海
等 级:新手上路
帖 子:55
专家分:0
注 册:2009-10-27
结帖率:88.24%
已结贴  问题点数:10 回复次数:7 
字符计数问题!
#include <stdio.h>

main()
{
    long nc;
    nc = 0;
    while(getchar() != EOF)
        ++nc;
    printf("%ld\n", c);
}

问题1:为什么while循环里没有"{}"可以不需要吗?
问题2:我执行程序后,我输入了abcd,回车,怎么什么都没有呢?
问题3:后来我按ctrl + z 出现了数字“5”,应该是4个字节数,怎么变5个了?
搜索更多相关主题的帖子: 计数 字符 
2009-11-11 01:27
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:10 
1,如果 while 或者 if 或者 else 或者 for 里面只执行一条语句的话,可以不加 { };

2,因为回车符不是EOF 符;

3,因为字符串后面还有个结束标记 '\0' 。
2009-11-11 01:32
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
得分:0 
程序代码:
#include <stdio.h>

main()
{
    long nc;
    nc = 0;
    while(getchar()!= '\n')
        ++nc;
    printf("%ld\n", nc);
    getch();
}
注意下  像2L说的问题就可以了

老师说 : 好好读书
2009-11-11 08:30
巅峰寂寞
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2009-11-10
得分:0 
不明白
2009-11-11 09:02
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
得分:0 
nc = 0;
    while(getchar() != EOF)
        ++nc;
    printf("%ld\n", c);
2楼解释的很清楚了,只是你还不知道字符串的原因,字符串的结尾会自动加一个'\n',你的判断条件是当字符串的结尾是EOF的时候停止循环。也就是说你输入的字符串虽然是ABCD,不过系统在后面自动加了一个 '\n',那么你的字符串就是"ABCD\n" ,其中'\n'也被判断为是一个字符,所以输出的结果就是5而不是4。
你要把 while(getchar() != EOF) 改成while(getchar()!='\n')  那么判断出来的才是4

2009-11-11 10:40
michaelyj
Rank: 1
来 自:上海
等 级:新手上路
帖 子:55
专家分:0
注 册:2009-10-27
得分:0 
那为什么不显示?

我想要的结果是:我输入字符后,我按一下回车,下一行出现的是计数结果。

然后在循环下一句,

一直到我按EOF位置结束
2009-11-11 14:04
michaelyj
Rank: 1
来 自:上海
等 级:新手上路
帖 子:55
专家分:0
注 册:2009-10-27
得分:0 
我自己已经研究出来了,不过还不是我要的结果,但能看见计数结果了!

#include <stdio.h>

main()
{
    long nc;
    nc = 0;
    while(getchar() != EOF)
        ++nc;
    printf("%ld\n", c);
    getchar();   //加一句这个
}
2009-11-11 14:15
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
得分:0 
你是 TC下的?
   查看的话 用ALT+F5

老师说 : 好好读书
2009-11-11 15:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-291865-1-1.html




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

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