请问while( ( ch = getchar() ) != EOF ) 语句是什么意思?
ch是一个字符,EOF是-1,这样ch不应该永远不等于-1么,那这个循环应该无限循环下去吧? 每次循环c就等于getchar()然后再判断c == -1
while( ( ch = getchar() ) != EOF ) 这个是这样执行的:
因为ch = getchar()所以ch是 getchar这个函数的返回值
然后再判断ch是不是EOF,如果是,就跳出循环,不是就继续循环 百度摘抄:
在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。 当你什么都没有输入的时候getchar()就会返回EOF(int型的),你可以通过键盘 Ctrl+z 模拟这种情况 EOF是一种看不见的的字符,在程序中要输入这种字符,就要按Ctrl+Z。 {:5_90:} 输入的字符存入ch中,当输入的字符不为Ctrl+Z时,执行循环。 哪里的问题 我应该还没学到这里 进来看看 可惜没看懂{:10_281:}
页:
[1]