| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1201 人关注过本帖
标题:C语言初学者求助高手们!
只看楼主 加入收藏
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
C语言初学者求助高手们!
我通过《C程序设计语言》这本书进行学习C语言,其中有一个统计输入的字符的个数的程序(原书的程序,未改动):
#include <stdio.h>

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

因为gechar函数每次只读入一个字符,所以每次输一个字符后按回车,按程序的意思应该是当你输入了一些字符后直到没有输入的时候按回车,程序就会跳出循环体,此时输出结果,也就是输入的字符数吧?
但我在dev-c++环境中运行,当我输入几次后,到不输入按回车时,结果不输出输入了几个字符的结果,只是换了一行,而程序也不结束,仍然可以输入,但也仍然无法输出结果。

请高手们指点下,看我对这个程序的理解有哪些不到位或者不正确的地方,麻烦各位高手们帮忙指点并解决下这个问题,谢谢了。

[ 本帖最后由 lyhlyhlyhboa 于 2011-1-1 21:15 编辑 ]
搜索更多相关主题的帖子: 程序设计 C语言 环境 统计 
2011-01-01 20:46
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:18 
EOF改为'\n'

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-01 20:48
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
不对啊,这样输入后一按回车,运行的窗口就自动关闭了啊?

不懈
2011-01-01 20:53
CrazyChild
Rank: 1
来 自:广东汕头
等 级:新手上路
帖 子:21
专家分:2
注 册:2010-12-31
收藏
得分:2 
以下是引用lyhlyhlyhboa在2011-1-1 20:53:06的发言:

不对啊,这样输入后一按回车,运行的窗口就自动关闭了啊?
加getch();

[ 本帖最后由 CrazyChild 于 2011-1-1 21:07 编辑 ]
2011-01-01 21:06
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
窗口会自动关闭是另一回事,说明你的程序已经printf了,并且结束了
你要它不关闭,那在printf的后面再加getchar

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-01 21:06
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
哦。这样就对了,谢谢谢谢版主了。
但是为什么原先的EOF不对呢?'\n'又是什么意思类?有什么用呢?

不懈
2011-01-01 21:13
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 

一般老潭的书是用TC,一般要用getch();      头文件 #include<conio.h>

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-01-01 21:18
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
你要回车结束,那就应该用\n
EOF是比较特殊的,控制台输入一般用不上,除非是文件和OJ(因为OJ用的文件当输入)

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-01 21:18
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
再次谢谢。那如果按书上的程序代码来编写,要怎么操作才能达到程序的目的呢?

不懈
2011-01-01 21:21
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
回车后,按Ctrl + Z,再回车

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2011-01-01 21:28
快速回复:C语言初学者求助高手们!
数据加载中...
 
   



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

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