我正在尝试学习如何处理和处理文件,现在我知道如何打开,写入和阅读文件。我想做的是,完成使用程序后,如何从文件中删除数据/内容? 在程序执行过程中需要时,我使用txt文件保存使用过的一些信息,但是完成后,我想删除保存的数据,它们只是数字。我当时想每次删除文件并创建文件,但我认为这不是理想的选择。有什么建议吗?
答案 0 :(得分:2)
使用std::filesystem::resize_file
:
matplotlib
答案 1 :(得分:2)
在这种情况下,通常只需要重写整个文件即可。如果文件很小,则可以读取整个内容,修改内容并将文件写回。
对于大文件,如果您担心会占用过多内存,则可以按适当大小的块读取文件,但是可以将这些块写入另一个临时文件。完成后,删除旧文件并将临时文件移到旧文件的位置。
您也可以结合使用这两种方法:读取整个文件,立即将其写入临时文件,然后删除并移动;如果在写入临时文件时发生任何问题,您仍然可以使用旧文件作为备份...
答案 2 :(得分:1)
您可以以写入模式(w)打开文件,然后将其关闭。它将截断所有先前的数据。
答案 3 :(得分:1)
在程序结束后清理临时文件通常是一个好主意。我当然不会留下空的临时文件。您可以轻松删除文件(例如,使用boost::filesystem::remove
或std::filesystem::remove
)。如果您真的只想“清除”文件,则:
void clear_file(const std::string& filename)
{
std::ofstream file {filename};
}
会做这项工作。