相关疑难解决方法(0)

更改或检查std :: ofstream的openmode

在使用来执行大量文件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以便仅在必要时关闭并重新打开它?

c++ iostream ofstream c++03

6
推荐指数
1
解决办法
5404
查看次数

标签 统计

c++ ×1

c++03 ×1

iostream ×1

ofstream ×1