基于C语⾔fflush()函数的使⽤详解
fflush⽤于清空缓冲流,虽然⼀般感觉不到,但是默认printf是缓冲输出的。 fflush(stdout),使stdout清空,就会⽴刻输出所有在缓冲区的内容。 fflush(stdout)这个例⼦可能不太明显,但对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不能作⽤于重定向输⼊流。fflush(stdin)刷新标准输⼊缓冲区,把输⼊缓冲区⾥的东西丢弃
库函数printf详解fflush(stdout)刷新标准输出缓冲区,把输出缓冲区⾥的东西打印到标准输出设备上
fflush(stdout);//这句起什么作⽤——:如果圆括号⾥是已写打开的⽂件的指针,则将输出缓冲区的内容写⼊该指针指向的⽂件,否则清除输出缓冲区。这⾥的stdout是系统定义的标准输出⽂件指针,默认情况下指屏幕,那就是把缓冲区的内容写到屏幕上。可是从代码中看不出缓冲区会有什么内容,所以它实际上没有起什么作⽤