【发布时间】:2014-06-12 16:06:19
【问题描述】:
我需要以读/写模式打开一个文件,读取其内容,然后全部清除。所以,我无法在截断模式下打开它。我该怎么做?
【问题讨论】:
-
“全部清除”是什么意思?
-
读取文件后清除所有内容。
-
哎呀如何删除我的帖子?
我需要以读/写模式打开一个文件,读取其内容,然后全部清除。所以,我无法在截断模式下打开它。我该怎么做?
【问题讨论】:
没有从打开的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 ();
【讨论】:
您可以在读取文件之前重命名文件并使用原始名称创建一个空文件。
【讨论】: