跳到主要内容

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 的效果。除非刷新,否则 "请输入一个整数 - " 字符串不会被写入屏幕。