2

我正在使用 ofstreamios::app在循环中以模式将一些文本输出到文件中。但是经过一些步骤后,我需要清除文件的内容。我知道我们可以通过删除文件并再次打开或再次打开它来做到这一点ios::trunc,但是有没有什么地方可以在不关闭并再次打开文件的情况下完成它?

4

2 回答 2

2

如果您已在ios::app模式下打开它,则无需再次打开就无法清除内容。ofstream只能将文本放入文件中,并且由于文本文件是连续的,因此您不能直接擦除它们上的数据。

于 2012-04-20T23:32:36.933 回答
0

请注意确定是否可以使用 io 流,但通常您可以通过将当前位置设置为 0 并在文件上设置 EOF 标记来截断打开的文件。例如,在 Win32 API 中,您可以使用SetFilePointer()和来做到这一点SetEndOfFile()

于 2012-04-20T23:36:58.573 回答