📜  C++ fflush()(1)

📅  最后修改于: 2023-12-03 14:59:44.868000             🧑  作者: Mango

C++ 的 fflush()

在 C++ 中,我们可以使用 fflush() 函数来清空输入/输出缓冲区。该函数位于 <stdio.h> 头文件中。

语法
int fflush(FILE *stream);

该函数接受一个文件指针作为参数,代表要清空的输入/输出流。如果该参数为 NULL,则该函数会清空所有的流。

函数返回值为 0 表示成功,否则表示失败。

用法示例

下面是一个简单的示例,演示如何使用 fflush() 函数:

#include <stdio.h>

int main() {
    char str[50];

    printf("请输入一个字符串:");
    fflush(stdout); // 清空缓冲区,确保将提示信息及时显示

    fgets(str, 50, stdin); // 读取用户输入的字符串
    printf("你输入的是:%s", str);

    return 0;
}

在这个示例中,我们首先输出一个提示信息,然后调用 fflush(stdout) 函数,确保将提示信息及时显示出来。

然后,我们使用 fgets() 函数读取用户输入的字符串,并在屏幕上显示出来。

注意事项
  • fflush() 函数只能用于清空缓冲区,不能清空操作系统缓存或硬件设备缓存。

  • 在读取用户输入时,如果要清空缓冲区,我们可以使用 fflush(stdin) 函数。但是,这种用法在标准中并没有被规定,因此,并不是所有的编译器都支持清空输入缓冲区。

  • 在 Windows 平台上,如果只是输出 \nendl,那么 stdout 缓冲非空,所以可能需要使用 fflush() 函数来清空缓冲区。

结论

fflush() 函数是一个常用的 C++ 编程中的 I/O 系统调用函数。它可以清空输入/输出缓冲区,确保数据能够及时显示或提交到文件当中。但是,需要注意的是,该函数只能用于清空缓冲区,不能清空操作系统缓存或硬件设备缓存。