如何在使用fstream打开文件后清除文件内容?

时间:2014-06-12 16:06:19

标签: c++ fstream

我需要以读/写模式打开文件,读取其内容然后清除所有文件。所以,我无法在截断模式下打开它。我怎么能这样做?

2 个答案:

答案 0 :(得分:13)

讨厌让你失望,但是......

没有标准方法可以从打开的 std :: fstream 中清除文件的内容,因此,直接的方法就是按照它们的实际情况处理这两个操作。 。两个操作。

首先处理所有阅读,然后再处理(通过不同的流对象)。


解决方案

换句话说;首先以只读模式打开文件( std :: ifstream )并读取您感兴趣的数据,然后丢弃该文件句柄并再次打开该文件。 。这次是在只写截断模式( std :: ofstream ),这样你就可以清除文件的内容了。

std::ifstream ifs ("some_file.txt");

... // read old data

ifs.close ();

std::ofstream ofs ("some_file.txt", std::ios::out | std::ios::trunc); // clear contents

... // write new data

ofs.close ();

答案 1 :(得分:0)

您可以在读取文件之前重命名该文件,并使用原始名称创建一个空文件。