在使用来执行大量文件I / O的某些代码中std::ofstream,我在缓存流以提高效率。但是,有时我需要更改文件的打开模式(例如,追加与截断)。这是一些类似的模拟代码:
class Logger {
public:
void write(const std::string& str, std::ios_base::openmode mode) {
if (!myStream.is_open) myStream.open(path.c_str(), mode);
/* Want: if (myStream.mode != mode) {
myStream.close();
myStream.open(path.c_str(), mode);
}
*/
myStream << str;
}
private:
std::ofstream myStream;
std::string path = "/foo/bar/baz";
}
Run Code Online (Sandbox Code Playgroud)
有谁知道:
ofstream?的打开模式。openmodean 的电流,ofstream以便仅在必要时关闭并重新打开它?