filebuf
这些标志传递给的构造函数†具有基于 C++11 中表 132 中定义的标志的行为:
+-----------------------------------+-------------------+
| ios_base flag combination | stdio equivalent |
| binary in out trunc app | |
+-----------------------------------+-------------------+
| + | "w" |
| + + | "a" |
| + | "a" |
| + + | "w" |
| + | "r" |
| + + | "r+" |
| + + + | "w+" |
| + + + | "a+" |
| + + | "a+" |
+-----------------------------------+-------------------+
| + + | "wb" |
| + + + | "ab" |
| + + | "ab" |
| + + + | "wb" |
| + + | "rb" |
| + + + | "r+b" |
| + + + + | "w+b" |
| + + + + | "a+b" |
| + + + | "a+b" |
+-----------------------------------+-------------------+
如您所见,在该表中找不到您的标志组合。
[C++11: 27.9.1.4/2]:
[..]如果mode
不是表中显示的某些标志组合,则打开失败。
这些是语义。
† [C++11: 27.9.1.7/2]
&[C++11: 27.9.1.11/2]
向我们展示模式是从流对象传递到缓冲区对象的。