[英]getchar() != EOF K&R
我很抱歉提出这个愚蠢的问题,而且,我已经检查了与该帖子相关的主题,仍然找不到帮助。 在下面的代码片段中:
#include <stdio.h>
main()
{
int c;
while((c=getchar()) != EOF)
putchar(c);
}
Q1:如果我输入hello
,则输出为hello
。 它不应该仅仅是h
因为虽然的getchar可以读取整个字符串,但它会接受只有一个字符,从而产生输出作为h
?
Q2:假设我输入n
,是否应该按以下步骤进行:
getchar()
仅消耗输入流中的一个字符。 所有其他字符保留在输入流中以供后续检查。
首次调用getchar()
,它将返回'h'
。 第二次,它返回'e'
,然后返回'l'
,依此类推。 第六次调用它时,它返回行尾指示符'\\n'
。 第七次调用它时,它将暂停,等待用户键入更多数据。
仅当用户指示文件末尾时,该函数才会返回EOF。 如果输入来自终端,则用户可以通过键入CTRL + D (Unix,Linux)或CTRL + Z (DOS,Windows)来指示文件结束。 如果输入来自磁盘文件,则在用完所有文件内容后将指示文件结尾。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.