fflush(stdin) fflush(stdout)
用来强制刷新缓冲区数据。如果需要在每次i/o操作前后,不希望缓冲中存在历史数据或者不期望的数据或者为了清除缓存等的时候使用,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)。
个人感觉该函数在时钟显示方面可以起很大作用。
与fflush函数相似的一些C函数:
system("pause");表示执行到此处要暂停,等待按任意键继续执行。
system("cls");表示清屏。
setbuf() 用来设置缓冲区特性,如果需要改变缓冲的特点和大小等,使用该调用。
举例说明:
#include <stdio.h>;
#include <unistd.h>;
int main(int argc, char *argv[])
{
int i = 0;
while(1)
{
sleep(1);
printf("%d/r", i);
fflush(stdout);
i++;
}
return 0;
}
该程序通过fflush函数的不但刷新,起到时钟显示的作用.