| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1172 人关注过本帖
标题:对c计数程序的疑问
只看楼主 加入收藏
zorrozzz
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-10-22
收藏
 问题点数:0 回复次数:10 
对c计数程序的疑问

我刚学c,用的是Dennis M.Ritchie和Brian W.Kernighan合著的《The c programming languagel》,学到字符计数那里就不队了,那代码运行却没结果,希望各位高手能帮帮我,其代码是
#include "stdio.h"
main()
{
double nc;
for(nc=0;getchar()!=EOF;++nc)
;
printf("%.0f\n",nc);
}

我在vc6.0和tc下运行后总没结果输出,我发现去掉for后那分号能一行一行输出结果,当为什么一次输出总的字符计数却不行呢?书上接下来的几个计数程序都存在这样的问题。希望大家帮帮我!!!

搜索更多相关主题的帖子: 疑问 计数 The Ritchie 
2006-10-22 11:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用zorrozzz在2006-10-22 11:04:46的发言:

我刚学c,用的是Dennis M.Ritchie和Brian W.Kernighan合著的《The c programming languagel》,学到字符计数那里就不队了,那代码运行却没结果,希望各位高手能帮帮我,其代码是
#include "stdio.h"
main()
{
double nc;
for(nc=0;getchar()!=EOF;++nc)//结束不了,用文件输入试试,或者改为getchar()!='\n'
;
printf("%.0f\n",nc);
}

我在vc6.0和tc下运行后总没结果输出,我发现去掉for后那分号能一行一行输出结果,当为什么一次输出总的字符计数却不行呢?书上接下来的几个计数程序都存在这样的问题。希望大家帮帮我!!!


倚天照海花无数,流水高山心自知。
2006-10-22 11:38
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

getchar()!='\n';//估计也不行吧

问题应该是缓冲区的缘故 每次应该清空吧


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-22 11:43
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

怎么不可以.,楼主应该是输入许多个字符,然后把所有字符的个数输出,用我这个可以的,我测试过了.


倚天照海花无数,流水高山心自知。
2006-10-22 11:51
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
用nuciewth的方法是可以的,我用EOF尝试,好像得用两次,即:”ctrl+z“后回车,然后再”ctrl+z“后回车,才能出结果。不知道怎么回事。EOF应该是”ctrl+z“吧,我是在vc6中运行的。

2006-10-22 12:00
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
怎么不可以.,楼主应该是输入许多个字符,然后把所有字符的个数输出,用我这个可以的,我测试过了

嗯 这样是可以的 偶理解错了

[此贴子已经被作者于2006-10-22 12:05:32编辑过]


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-22 12:05
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
abcdef回车
^Z

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-22 15:49
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
abcdef回车
^Z
这样的话计数时就把回车也算在内了。

2006-10-22 16:20
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用husi在2006-10-22 16:20:41的发言:
abcdef回车
^Z
这样的话计数时就把回车也算在内了。

如果不要把回车计算进去的话,那就在行末尾输入^Z作为行结束符,最后另起一行输入^Z作为整个文件结束符。


我的原则很简单:不做不喜欢的事!
2006-10-22 16:27
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

把回车算进去没什么不对的啊!

如果你不想算回车就根本没必要这么写了


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-22 16:30
快速回复:对c计数程序的疑问
数据加载中...
 
   



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

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