我有个问题。我使用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在内部维护写入数据的缓冲区,当您调用flushclose时,这些数据将写出到实际文件中。此缓冲区的存在是为了减少重复写入文件时产生的磁盘I / O数量。

关于c++ - 退出后的Fstream输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33135337/

10-12 23:56