fflush()的理解

#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是系统定义的标准输出文件指针,默认情况下指屏幕,即将缓冲区中的内容写到屏幕上。


你可能感兴趣的:(fflush()的理解)