c语言缓冲区类型,清空缓冲区,谈getchar、getch、getche - 知乎
std::cerr与std::cout区别_MatthewMao的博客-CSDN博客
我目前的理解:【可能是错的】例如键盘输入数字做乘法这个例子,对应语句就是:
#include <iostream>
int main()
{
int a=0,b=0;
std::cin >> a >> b ;
std::cout<<a*b<<std::endl;
}
由于我们的键盘输入速度一定时远低于CPU 处理速度的,虽然理论上的执行顺序应该是:CPU等待 键盘输入两个值 -- CPU读取这两个值并赋给a,b这两个变量对应的空间 -- CPU 对这两个变量做乘法 -- 将乘积输出
但事实上,CPU 不可能去等待键盘输入的,在键盘输入的过程中,CPU会去处理其他的事情(否则就会CPU资源浪费呀)
那CPU去处理其他的事情,键盘输入的数据就不会输入的瞬间被CPU接受然后赋给对应变量,这两个从键盘输入的数值 就会存储到 缓存区buffer中
等到这两个数据全部都从键盘输入完毕了,CPU这时候 再一起从缓存区读走这两个数值 就可以既不耽误CPU,有可以快速地执行我们的代码程序