gpt4 book ai didi

c++ - 退出后fstream输出

转载 作者:行者123 更新时间:2023-11-28 06:01:50 26 4
gpt4 key购买 nike

我有一个问题。我使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com