我使用ofstream在循环中以ios::app
模式将一些文本输出到文件。但经过一些步骤,我需要清除文件的内容。我知道我们可以通过删除文件并再次打开或使用ios::trunc
再次打开它来实现,但有没有我可以在不关闭的情况下完成它并再次打开文件?
答案 0 :(得分:2)
如果您已在ios::app
模式下打开它,则无法在不重新打开内容的情况下清除内容。 ofstream
只能将文本放在文件中,并且由于文本文件是连续的,因此您无法直接删除它们上的数据。
答案 1 :(得分:0)
请注意是否可以使用io流,但通常可以通过将其当前位置设置为0然后在文件上设置EOF标记来截断打开的文件。例如,在Win32 API中,您可以使用SetFilePointer()
和SetEndOfFile()
执行此操作。