我的程序总是将数据写入文件,但是当我在程序完全停止之前关闭它时,最终结果就是没有写入文件。我真的希望能够在没有完全完成的情况下关闭它,那么如何解决这个问题以使其不断保存文件呢?
ofstream outfile;
outfile.open("text.txt", std::ios::app);
bool done = false;
int info;
while (done == false){
cin>>info;
outfile<<info;
cout<<info<<"Choose different info";
if(info == 100){
done = true;
}
}
outfile.close();
这显然只是一个例子,但它与我的实际代码非常相似。
编辑:当我说关闭时我的意思是杀死它(在控制台的右上方击中红色X)
答案 0 :(得分:5)
当你完成了足够的&#34;足够的&#34;你可能需要flush你的std :: ofstream。工作
&#34;足够&#34;这里的工作将取决于你的申请。
也许
...
outfile<<info;
outfile.flush();
...
答案 1 :(得分:5)
当您调用write函数以节省时间时,操作系统不会写入文件,它会等待检查您是否要写入其他内容或者写入“好”的时间。您写入缓冲区,操作系统将此缓冲区写入该文件。 关闭函数时,它会将缓冲区中剩余的任何内容写入文件。您可以使用flush方法强制代码写入文件。每次写完后都要刷新文件,你就可以了。 同花顺:http://www.cplusplus.com/reference/ostream/ostream/flush/
outfile << n;
outfile.flush();