我有一个问题。我使用 fstream 打印到一个文件,但它不是实时打印,它在我关闭程序后输出所有内容(就像它在程序运行时存储所有数据并在退出后立即打印所有内容)。如果我隐藏控制台 FreeConsole();
即使退出后也不会输出任何内容。我以前没有遇到过这个问题(大约半年前)。
无论如何这里是代码:
#include <fstream>
#include <windows.h>
std::fstream file("xx.txt", std::ios::out);
int main()
{
FreeConsole();
while(true)
{
file << "X";
Sleep(500);
}
file.close();
}
最佳答案
如果你想让数据立即出现,你需要flush
文件:
file << "X";
file.flush();
ofstream
在内部维护写入数据的缓冲区,当您调用 flush
或 close
时,该缓冲区会写入实际文件。此缓冲区的存在是为了减少重复写入文件时产生的磁盘 I/O 量。
关于c++ - 退出后fstream输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33135337/