缓冲区
当我们使用printf()将数据显示在屏幕上,或者使用scanf()函数将数据输入到电脑里,我们是否会产生些许疑问?为何输入的字符会直接显示到屏幕上等等。这里需要介绍一个C语言中的一个关键概念——缓冲区。
当我们使用老式系统进行运行代码时,会出现这样一种情况:输入一个数据,会将一个数据先打印在屏幕上,然后再把处理过的一个数据打印再屏幕上。
例如:ii lliikkee yyoouu!!
像这样回显用户输入的字符后立即打印该字符是无缓冲(或直接)输入,即正在等待的程序可立即使用输入的字符。
而现在大部分系统在用户按下Enter键之前不会重复打印刚刚输入的字符,这种输入形式输入缓冲输入。
例如:i like you!
i like you!
用户输入的字符被收集并存储在一个被称为缓冲区的临时存储区,按下Enter键后,程序才可以使用用户输入的字符。
- 该图比较了缓冲输入与无缓冲输入
为什么存在缓冲输入呢?
1.首先,把若干字符作为一个快进行传输比逐个发送这些字符节约时间。
2.如果用户打错字符,可以直接通过键盘修正错误,当最后按下Enter键后,传输的是正确的输入。
但是并不是缓冲输入比较好,在某些交互式程序中同样也需要无缓冲输入。
缓冲的分类:
缓冲分为俩类&#x