Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
FILE*在 C++ 中是否可以在不关闭并重新打开它的情况下更改打开的输出模式? 我有一个FILE*打开模式std::ios_base::out,想以std::ios_base::app更优雅的方式切换。
FILE*
std::ios_base::out
std::ios_base::app
如果您想在文件末尾写入,只需查找文件末尾,这是更简单的解决方案。
在 POSIX 系统(包括 linux、unix、...)和很可能在 Windows 上,一旦打开文件,就无法更改文件的打开模式。因此,您必须关闭它并重新打开它。
如果您的操作系统有一些允许这样做的特殊性并且您不关心可移植性,您可以通过在子类中使用正确的系统调用来实现这一点std::filebuf,然后创建自己的std::fstream子类。
std::filebuf
std::fstream