#include "stdio.h"
int fflush(FILE *stream);
清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件
fflush(stdin):
对比下面的两个程序:
int a, c;
scanf("%d", &a);
c = getchar();
输入:12(回车)
则 a = 12, c = '\n'
int a, c;
scanf("%d", &a);
fflush(stdin);//清空输入缓冲区
c = getchar();
输入:12(回车)
则a = 12, c暂时未得到值,还需要输入c,因为getchar也是缓冲输入,‘\n’本还在缓冲区,但是被fflush(stdin)清空了。
fflush不能作用于重定向输入流。
fflush(stdout):
刷新标准输出缓冲区,stdout是系统定义的标准输出文件指针,默认情况下指屏幕,即将缓冲区中的内容写到屏幕上。