C++ 冲洗刷新流

示例

默认情况下,文件流以及许多其他类型的流都被缓冲。这意味着写入流可能不会导致基础文件立即更改。为了迫使所有缓冲的写操作立即进行,可以刷新流。您可以直接通过调用flush()方法或通过std::flush流操纵器来执行此操作:

std::ofstream os("foo.txt");
os << "你好,世界!" << std::flush;

char data[3] = "Foo";
os.write(data, 3);
os.flush();

有一个流操纵器std::endl,结合了编写换行符和刷新流:

// 以下两行都做同样的事情
os << "你好,世界!\n" << std::flush;
os << "你好,世界!" << std::endl;

缓冲可以提高写入流的性能。因此,进行大量编写的应用程序应避免不必要的刷新。相反,如果I / O很少执行,则应用程序应考虑频繁进行刷新,以避免数据卡在流对象中。