【问题标题】:Switching between fstream trunc and app modes by variable通过变量在 fstream trunc 和 app 模式之间切换
【发布时间】:2016-11-25 16:13:43
【问题描述】:

我找到了几个相关的线程,但没有一个对这个任务有明确、完整的解决方案。

我需要在运行时在控制台中选择我的 ofstream 的打开模式,我不太了解必要的声明流程。我需要一些组合,例如:

std::ios_base::openmode myopenmode;
std::ios::openmode myopenmode;
std::ofstream::openmode myopenmode;
myopenmode = trunc; //??? or something.

并且能够将 myopenmode 的值设置为 trunc 或 app,但是语法如此,所以最终我有这样的东西:

myfilestream.open(filename, myopenmode);

我只是无法在文档中找到它。

【问题讨论】:

    标签: c++ append truncate ofstream


    【解决方案1】:

    好吧,我想我解决了。一旦我这样做了,就很明显了。

    std::ofstream::openmode myopenmode = std::ofstream::trunc; // set to trunc
    std::ofstream::openmode myopenmode = std::ofstream::app; // set to app
    myfilestream.open(filename, myopenmode);
    

    【讨论】:

      【解决方案2】:

      open中的第二个参数是位掩码 见

      http://www.cplusplus.com/reference/ios/ios_base/openmode/

      我会说,当您接受输入时,要么将其作为正确的位掩码获取,要么使用 if/else 或 switch 语句将您的输入转换为正确的位掩码。

      【讨论】:

      • 你能用一个例子来编辑你的答案吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多