参考自:http://blog.youkuaiyun.com/devil_2009/article/details/6364759
fflush()的作用是用来刷新缓冲区,fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃;fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西强制打印到标准输出设备上。
fflush(stdin)不太常用,在有些编译器中是错误的用法,可以用以下方法替代:
while(getchar()!='\n'); 但是while(getchar() !='\n');是不能代完全替代fflush(stdin);的,因为当输入缓冲区里的内容全部被取出时(包括换行符'\n');必须在输入字符或者按enter键,才能让while(getchar() != '\n');编译通过。
fflush(stdout)在单进程程序中作用不大,但在多进程程序中很有用。程序的输出内容一般不会立即输出,而是在程序结束后再输出。fflush(stdout)会强制每次printf()都立即显示在标准输出设备上。