fflush() 声明头文件是 stdio.h
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃 fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
fflush用于清空缓冲流,虽然一般感觉不到,但是默认printf是缓冲输出的。fflush(stdout),使stdout清空,就会立刻输出所有在缓冲区的内容。
printf(“pleas input a number:”);
fflush(stdout); //如果没有这句,上面字符不一定马上输出,因为它不带
//车, 标准输出是一次一行。不过windows中做了优化,
//在非windows中,这个可能发生。
scanf(“%d”,&a);
fflush(stdout)这个例子可能不太明显,但对stdin很明显。如下语句: int a,c; scanf("%d",&a); getchar(); 输入: 12(回车) 那么 a=12 ,c= '\n' ,而: int a,c; scanf("%d",&a); fflush(stdin); getchar(); 输入: 12(回车) 那么a=12, c暂时未得到输入值,还需要再输入c,因为getchar也是缓冲输入,'\n'本还在缓冲区,但是被清空了。 另外fflush不能作用于重定向输入流。