我需要每5秒无限地写入一个文件(.txt) 这是我的代码:
#include <iostream>
#include <string>
#include <fstream>
#include <unistd.h>
#include <stdio.h>
using namespace std;
int main()
{
ofstream file("inc.txt");
while(true)
{
file << "Whatever\n" ;
sleep(5);
}
}
当我运行程序时,.txt文件没有任何变化!
答案 0 :(得分:4)
你已经在文件中无限地写了。但是通过缓冲,你没有在文件中看到结果,使用flush
解决了:
while (true)
{
file << "Whatever\n";
file.flush(); // Force the write into the file.
sleep(5);
}
答案 1 :(得分:3)
文件输出缓冲以防止硬盘过度磨损。要花费很长时间,每秒1.8个字节,才能达到缓冲区限制并看到可观察到的结果。
如果您希望立即看到每一行,您可以手动请求缓冲区刷新:
file << "Whatever\n" << flush;
或等同地:
file << "Whatever" << endl;