wang815309286 发表于 2016-9-8 17:49:14

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

ch是一个字符,EOF是-1,这样ch不应该永远不等于-1么,那这个循环应该无限循环下去吧?

无符号整形 发表于 2016-9-8 18:38:38

每次循环c就等于getchar()
然后再判断c == -1
while( ( ch = getchar() ) != EOF ) 这个是这样执行的:
因为ch = getchar()所以ch是 getchar这个函数的返回值
然后再判断ch是不是EOF,如果是,就跳出循环,不是就继续循环

mingcxx 发表于 2016-9-8 19:11:08

百度摘抄:
在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

Krant5 发表于 2016-9-8 22:24:51

当你什么都没有输入的时候getchar()就会返回EOF(int型的),你可以通过键盘 Ctrl+z 模拟这种情况

lelen99 发表于 2016-9-9 10:20:20

EOF是一种看不见的的字符,在程序中要输入这种字符,就要按Ctrl+Z。

zs001 发表于 2016-9-9 18:24:58

{:5_90:}

这小雨有点大 发表于 2016-9-11 19:54:12

输入的字符存入ch中,当输入的字符不为Ctrl+Z时,执行循环。

得意的屁 发表于 2016-9-11 22:17:35

哪里的问题 我应该还没学到这里 进来看看 可惜没看懂{:10_281:}
页: [1]
查看完整版本: 请问while( ( ch = getchar() ) != EOF ) 语句是什么意思?