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



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

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

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

最新更新