我正在阅读K& R的C编程语言,并且遇到了这段代码:
main()
{
int c;
while ((c=getchar()) != EOF)
putchar(c);
}
我理解上述代码在getchar()
从stdin
获取字符后立即打印一个字符的原因是因为stdin
仅发送用户点击Enter
后输入到程序的输入缓冲区。
但是,函数getchar()
仍然从输入缓冲区一次读取一个字符,并将所述字符传递给putchar()
进行打印。为什么没有putchar()
在获得该字符后立即打印该字符?它是否还在打印前等待newline
字符,并将所有内容存储在自己的缓冲区中?