鱼C论坛

 找回密码
 立即注册
查看: 3122|回复: 7

请问while( ( ch = getchar() ) != EOF ) 语句是什么意思?

[复制链接]
发表于 2016-9-8 17:49:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ch是一个字符,EOF是-1,这样ch不应该永远不等于-1么,那这个循环应该无限循环下去吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-8 18:38:38 | 显示全部楼层
每次循环c就等于getchar()
然后再判断c == -1
while( ( ch = getchar() ) != EOF ) 这个是这样执行的:
因为ch = getchar()所以ch是 getchar这个函数的返回值
然后再判断ch是不是EOF,如果是,就跳出循环,不是就继续循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-9-8 19:11:08 | 显示全部楼层
百度摘抄:
在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-8 22:24:51 | 显示全部楼层
当你什么都没有输入的时候getchar()就会返回EOF(int型的),你可以通过键盘 Ctrl+z 模拟这种情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-9 10:20:20 | 显示全部楼层
EOF是一种看不见的的字符,在程序中要输入这种字符,就要按Ctrl+Z。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-9 18:24:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-11 19:54:12 | 显示全部楼层
输入的字符存入ch中,当输入的字符不为Ctrl+Z时,执行循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-11 22:17:35 | 显示全部楼层
哪里的问题 我应该还没学到这里 进来看看 可惜没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表