当我杀死应用程序时,无法保存写入文件的数据

时间:2015-01-05 22:53:40

标签: c++ file

我的程序总是将数据写入文件,但是当我在程序完全停止之前关闭它时,最终结果就是没有写入文件。我真的希望能够在没有完全完成的情况下关闭它,那么如何解决这个问题以使其不断保存文件呢?

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)

2 个答案:

答案 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();