【问题标题】:C++ stream openmode combinationsC++ 流开放模式组合
【发布时间】:2018-08-19 19:32:30
【问题描述】:

C++ std::ios_base::openmode flags 是如何工作的,它们有什么作用?

更具体:

  • 对于 C++ 标准库中的各种流/文件流对象,std::ios_base::openmode 的有效组合是什么?
  • 如果组合不正确会怎样?
  • 这些组合是否与作为参数传递给fopen 的各种C 风格字符串相对应:“rb”、“r+”等?如果是这样,哪些 C++ openmode 标志对应于哪些 C 样式模式?

【问题讨论】:

标签: c++ file-io stream iostream


【解决方案1】:

std::basic_filebuf::open 中所述,以下是有效的开放模式组合:

  • in,相当于"r"
  • out,相当于"w"
  • app,相当于"a"
  • out|in,相当于"r+"
  • out|in|trunc,相当于"w+"
  • out|in|app,相当于"a+"
  • binary|in,相当于"rb"
  • binary|out,相当于"wb"
  • binary|app,相当于"ab"
  • binary|out|in,相当于"r+b"
  • binary|out|in|trunc,相当于"w+b"
  • binary|out|in|app,相当于"a+b"

任何其他组合都会导致失败。

【讨论】:

  • 谢谢。我想我会在一个单独的问题中问其他问题。
  • 查看链接页面上的表格标题:“openmode & ~ate”
猜你喜欢
  • 2012-09-04
  • 2021-12-31
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
相关资源
最近更新 更多