有没有办法在c ++中动态清除文本文件的内容?

时间:2012-04-20 23:20:50

标签: c++ file-io

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

请注意是否可以使用io流,但通常可以通过将其当前位置设置为0然后在文件上设置EOF标记来截断打开的文件。例如,在Win32 API中,您可以使用SetFilePointer()SetEndOfFile()执行此操作。