退出后的Fstream输出
Fstream outputs after exit
我有一个问题。我使用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++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 在fstream期间忽略空行
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- C++ 没有使用 fstream 将输出发送到文件
- C++:使用 fstream、map 和输出
- 使用 fstream 设置精度以输出文件 - 格式为双精度
- 无法使用 fstream 打开新的传入和输出文件
- 退出后的Fstream输出
- Fstream和setw没有正确对齐输出
- c++ fstream输出错误数据
- 在c++中使用fstream写入输出文件
- c++模板输出:iostream或fstream