什么是标准输入缓冲区?
#include int main(void) { int c; c = getchar(); putchar(c); c = getchar(); putchar(c); c = getchar(); putchar(c); return 0; }
我想了解为什么三次调用的函数只使用一次输入的行。 有人解释说,在这种情况下我们使用标准输入缓冲区,那是一块内存。 我想读一些关于它的东西。 你能告诉我一些资源吗?
这是终端(命令行窗口)的一项function。
默认情况下,终端将收集用户的输入,直到他按下Enter / Return。 然后整行被推送到程序的输入文件流( stdin
,即;因为你使用
而不是
,所以没有涉及cin
)。
这很有用,因为您的程序不必处理解释所有键盘事件(例如,按下Backspace时删除字母)。 想要自己处理键盘的程序可以禁用此默认输入模式。 我认为相关的Google关键字是terminfo
或termcap
。
特别是关于你的问题,如果三个getchar()
调用包含三个字符,那么一行输入就很好。 如果只输入一个字符,程序应该等待后续的getchar()
调用以获得更多输入。