📅  最后修改于: 2023-12-03 14:59:44.868000             🧑  作者: Mango
在 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 平台上,如果只是输出 \n
或 endl
,那么 stdout 缓冲非空,所以可能需要使用 fflush()
函数来清空缓冲区。
fflush()
函数是一个常用的 C++ 编程中的 I/O 系统调用函数。它可以清空输入/输出缓冲区,确保数据能够及时显示或提交到文件当中。但是,需要注意的是,该函数只能用于清空缓冲区,不能清空操作系统缓存或硬件设备缓存。