我的程序总是将数据写入文件,但是当我在程序完全停止之前关闭它时,最终结果就是没有写入文件.我真的希望能够在没有完全完成的情况下关闭它,那么如何解决这个问题以使其不断保存文件?
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();
Run Code Online (Sandbox Code Playgroud)
这显然只是一个例子,但它与我的实际代码非常相似.
编辑:当我说关闭时我的意思是杀死它(在控制台的右上方击中红色X)
当你完成"足够"的工作时,你可能需要刷新你的std :: ofstream.
"足够"的工作将取决于您的应用程序.
也许
...
outfile<<info;
outfile.flush();
...
Run Code Online (Sandbox Code Playgroud)
当您调用write函数以节省时间时,操作系统不会写入文件,它会等待检查您是否要写入其他内容或者写入"好"的时间.您写入缓冲区,操作系统将此缓冲区写入该文件.关闭函数时,它会将缓冲区中剩余的任何内容写入文件.您可以使用flush方法强制代码写入文件.每次写完后都要刷新文件,你就可以了.同花顺:http://www.cplusplus.com/reference/ostream/ostream/flush/
outfile << n;
outfile.flush();
Run Code Online (Sandbox Code Playgroud)