| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2787 人关注过本帖
标题:getchar的疑问
取消只看楼主 加入收藏
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
结帖率:85.71%
收藏
 问题点数:0 回复次数:4 
getchar的疑问
问题来自Brian W.Kernighan & Dennis M.Ritchie写的c程序设计语言第二版本.

P11
#include <stdio.h>

int main ()
{
int c;

while ( ( c = getchar () ) != EOF )
putchar ( c );

}

我的理解是给入一串输入(就当字符)进入内存缓冲区, 回车后自动给入一个结束符号,然后在一个一个判断如果不是结束符号(EOF)不是则输出屏幕.最后到达结束符号后main退出.我用tc2.0调试但是该程序不能正常退出.百思不得其解.
书上对该程序的解释摘录如下:
  getchar函数在没有输入时返回一个特殊的值即EOF.
while先读入一个字符并将其赋给c,然后测试该字符是否为文件结束标记....
最后到达输入结束位置时,while循环语句终止执行,从而整个main程序执行结束.

  为什么不能正常退出程序(mian程序不会执行结束)?运行的结果像是无限循环执行该程序.难道不会自动赋EOF??那是不是该书讲的就有问题????? 我对getchar运行的理解有错误吗????
搜索更多相关主题的帖子: getchar 疑问 
2007-05-12 10:06
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 

就本程序而言回车以后是否给文件一个EOF???


计算机之路是痛苦并快乐着的!!
2007-05-12 11:13
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 
我的问题不是为了想这个程序能不能结束退出。我的目的是想知道为什么这个程序不能退出。
回答的时候请大虾们好好阅读下。

到底EOF有没有在输入完成后加在文件结尾??

是Brian W.Kernighan & Dennis M.Ritchie写的书出问题了吗??

计算机之路是痛苦并快乐着的!!
2007-05-12 13:30
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 
我不是想求怎样解决这个问题。
我想知道为什么这个程序会出这样的问题。
请详细阅读问题。

计算机之路是痛苦并快乐着的!!
2007-05-12 13:33
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
收藏
得分:0 
我猜想可能是编译器的不同导致的吧!
那位大哥详细描述下getchar的运行过程。

计算机之路是痛苦并快乐着的!!
2007-05-12 23:33
快速回复:getchar的疑问
数据加载中...
 
   



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

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