C++ fflush() 函数
缓冲数据是存储在计算机物理内存中的临时或应用特定数据,直到特定时间为止。
fflush()
函数定义在 <cstdio>
头文件中。
fflush() 原型
int fflush(FILE* stream);
如果 stream
是输出流或最后一次操作是输出的更新流,调用 fflush()
函数会将任何缓冲的未写数据写入关联的输出设备。
如果 stream
是空指针,则 刷新所有打开的输出流。
对于输入流和最后一次操作是输入的更新流,其行为是未定义的。
fflush() 参数
stream
:要刷新的流。
fflush() 返回值
fflush()
函数返回:
- 成功时返回零。
- 失败时返回 EOF 并设置文件流的错误指示器。
示例:fflush() 函数如何工作?
#include <cstdio>
#include <cstring>
int main()
{
int x;
char buffer[1024];
setvbuf(stdout, buffer, _IOFBF, 1024);
printf("请输入一个整数 - ");
fflush(stdout);
scanf("%d",&x);
printf("您输入的是 %d", x);
return(0);
}
当你运行程序时,输出将会是:
请输入一个整数 - 2
您输入的是 2
在上述程序中,尝试移除 fflush(stdout)
这行代码并运行程序以查看 fflush 的效果。除非刷新,否则 "请输入一个整数 - " 字符串不会被写入屏幕。