Way*_*yne -1 c codeblocks
我很抱歉问这个愚蠢的问题,而且,我已经检查了与这篇文章相关的线程仍然没有找到任何帮助。在下面的代码片段中:
#include <stdio.h>
main()
{
int c;
while((c=getchar()) != EOF)
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)
Q1:如果我输入hello,输出是hello。不应该只是h因为虽然 getchar 可以读取整个字符串但它只接受一个字符并因此产生输出为h?
Q2:假设我输入n,不应该如下进行:
getchar()只消耗输入流中的一个字符。所有其他字符都保留在输入流中以供后续检查。
第一次调用时getchar(),它返回'h'。第二次,它返回'e',然后'l',依此类推。第六次调用时,它返回行尾指示符'\n'。第七次调用时,它会暂停,等待用户输入更多数据。
只有当用户指示文件结束时,函数才会返回 EOF。如果输入来自终端,用户可以通过键入CTRL+ D(Unix、Linux)或CTRL+ Z(DOS、Windows)来指示文件结束。如果输入来自磁盘文件,则在文件的所有内容都用完后指示文件结束。