【问题标题】:How to clear the content of a file after it is opened using fstream? [duplicate]使用fstream打开文件后如何清除文件内容? [复制]
【发布时间】:2014-06-12 16:06:19
【问题描述】:

我需要以读/写模式打开一个文件,读取其内容,然后全部清除。所以,我无法在截断模式下打开它。我该怎么做?

【问题讨论】:

  • “全部清除”是什么意思?
  • 读取文件后清除所有内容。
  • 哎呀如何删除我的帖子?

标签: c++ fstream


【解决方案1】:

不想让你失望,但是..

没有从打开的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 ();

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多