| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2787 人关注过本帖
标题:getchar的疑问
只看楼主 加入收藏
toughbone
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-6-17
收藏
得分:0 
学习了
2007-05-20 13:05
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
~~在tc2.0中```EOF=-1``

你的程序之所以不能正常退出```而是不停的循环是因为`

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

中```你输入的值没有 EOF(-1)

当你按回车时```getchar最后读了回车符``但是回车符不等于EOF``所以你的程序不回退出去```而回重新又执行一次`

EOF``是文件结束符```是在文件里的```

按了回车``后不回自动加上去的```

这个程序本身没有错```

你要想让它正常退出```

那么在你的输入中```就必须要有``一个字符的值是EOF```

12楼说``EOF是windows下按ctrl+z

我没试过``也不知道``

我现在看的也是这本书```刚开始运行书上的问题时``也和你一样困惑```

甚至好还 输入了 EOF 3个字母``又输入-1``然后都错``

因为EOF和-1是5个字符``每个的值又不是EOF的值```

下来好好想下``才明白的``

然后用'\n'换了EOF```

就可以正常退出了```

LZ``还没什么不明白的吗?



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-05-20 13:40
flyaway57
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-3-28
收藏
得分:0 
EOF是定义在stdio.h头文件里的,楼主可以编个程序去看看EOF到底是多少(这是K&R书上的课后题,看来楼主偷懒了啊),在windows下 EOF为 Ctrl+z ,UNIX下为Ctrl+d这样你就可以退出了
2007-11-25 14:23
lw_China
Rank: 1
来 自:peking
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-11-4
收藏
得分:0 
原帖由 [bold][underline]wtyj112[/underline][/bold] 于 2007-5-12 13:30 发表 [url=http://bbs.][/url]
我的问题不是为了想这个程序能不能结束退出。我的目的是想知道为什么这个程序不能退出。回答的时候请大虾们好好阅读下。到底EOF有没有在输入完成后加在文件结尾??是Brian W.Kernighan & Dennis M.Ritchie写的书出问题 ...



[bold]书是没有问题的.[/bold]

[bold]EOF != 回车[/bold]
[bold]EOF == -1;[/bold]

[bold]windwos 中一般是 ctrl+z.[/bold]

在这里推荐一本书 <The C Programming Language>
2007-11-25 14:38
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
收藏
得分:0 
我也確實不明白EOF的作用啊,什麽時候才會起作用呢??

潜心苦C,却发觉百C不得其解啊~
2007-11-25 16:17
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
收藏
得分:0 
这里我想你必须理解什么是[color=black]数据流
C对待输入与输出设备与其对待存储设备上的普通文件是一样地[/color]
特别的是,[color=magenta]键盘和显示设备作为每个C程序自动打开的文件来对待[/color]
所以[color=lemonchiffon]键盘输入也可以象文件那样使用尾检测器来[/color]终止键盘输入
即使用EOF
在[color=red]win xp下使用ctrl+z来导致传送文件尾信号[/color]

在路上走,看见了C,从此爱上了她
2007-11-25 21:50
快速回复:getchar的疑问
数据加载中...
 
   



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

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