如何从txt文件中删除数据/内容

时间:2019-09-18 10:03:03

标签: c++ file

我正在尝试学习如何处理和处理文件,现在我知道如何打开,写入和阅读文件。我想做的是,完成使用程序后,如何从文件中删除数据/内容? 在程序执行过程中需要时,我使用txt文件保存使用过的一些信息,但是完成后,我想删除保存的数据,它们只是数字。我当时想每次删除文件并创建文件,但我认为这不是理想的选择。有什么建议吗?

4 个答案:

答案 0 :(得分:2)

使用std::filesystem::resize_file

matplotlib

答案 1 :(得分:2)

在这种情况下,通常只需要重写整个文件即可。如果文件很小,则可以读取整个内容,修改内容并将文件写回。

对于大文件,如果您担心会占用过多内存,则可以按适当大小的块读取文件,但是可以将这些块写入另一个临时文件。完成后,删除旧文件并将临时文件移到旧文件的位置。

您也可以结合使用这两种方法:读取整个文件,立即将其写入临时文件,然后删除并移动;如果在写入临时文件时发生任何问题,您仍然可以使用旧文件作为备份...

答案 2 :(得分:1)

您可以以写入模式(w)打开文件,然后将其关闭。它将截断所有先前的数据。

答案 3 :(得分:1)

在程序结束后清理临时文件通常是一个好主意。我当然不会留下空的临时文件。您可以轻松删除文件(例如,使用boost::filesystem::removestd::filesystem::remove)。如果您真的只想“清除”文件,则:

void clear_file(const std::string& filename)
{
    std::ofstream file {filename}; 
}

会做这项工作。