关于刷新缓冲区,目前的我还没看到有什么必要,因为感觉不用函数刷新的就很普遍啦~~
首先说一说什么叫缓冲区:在执行printf()输出函数的时候,将要输出的东西会发向输出缓冲区(在c++里叫输出流)。在执行输入的时候,将要输入的东西会发向输入缓冲区(在c++里叫输入流)。
那什么又是刷新缓冲区呢:刷新缓冲区指的是输出时将输出缓冲区里面的内容传给屏幕,显示出来;将输入缓冲区里面的内容传给变量。达到 清空缓冲区的效果。
那什么时候会刷新缓冲区呢?
cpp里面值列举了3种情况: 1.在缓冲区满了的时候 2.在遇到\n \r的时候 3.在遇到输入函数的时候
但是就拿一个最简单的程序来看:
#include<stdio.h>
int main(void)
{
printf("hello world");
return 0;
}
很明显,这个肯定会输出,但是有明显没有达到上述的三种情况,所以经四海八荒查证资料得:还有几种情况也会自动刷新啦,比如程序结束的时候,进程结束的时候。
所以说现在刷的很普遍,作为一个程序猿基本不用担心,如果真的遇到有问题的时候,我们还有刷新函数,如下:
#include
int main(void)
{
printf("111111");
_flushall();//这是刷新所有缓冲区的函数
fflush(stdin);//根据里面的参数知道,这个函数起到的作用是刷新输入缓冲区
fflush(stdout);//根据里面的参数知道,这个函数起到的作用是刷新输出缓冲区
getchar();
return 0;
}