public member function
<ios> <iostream>

std::ios_base::flags

get (1)
fmtflags flags() const;
set (2)
fmtflags flags (fmtflags fmtfl);
获取/设置格式标志
第一种形式(1)返回当前在流中选择的格式标志。
第二种形式(2)为流设置新的格式标志,并返回其先前的值。

流的格式标志会影响某些输入函数对数据的解释方式以及某些输出函数如何写入数据。有关此函数参数的可能值和返回值解释,请参见 ios_base::fmtflags

此函数的第二种形式为流设置所有格式标志的值,会覆盖现有值,并清除未在参数中显式设置的任何标志。要访问单个标志,请参见成员 setfunsetf

参数

fmtfl
流将使用的格式标志。
ios_base::fmtflags 是一个位掩码类型

返回值

调用前的流中选定的格式标志。
ios_base::fmtflags 是一个位掩码类型

示例

1
2
3
4
5
6
7
8
9
// modify flags
#include <iostream>     // std::cout, std::ios

int main () {
  std::cout.flags ( std::ios::right | std::ios::hex | std::ios::showbase );
  std::cout.width (10);
  std::cout << 100 << '\n';
  return 0;
}

这个简单的例子为 cout 设置了一些格式标志,这些标志会影响插入操作,通过以十六进制(0x64)并以十个字符宽的字段右对齐填充来打印值
      0x64


数据竞争

访问(1)或修改(2)流对象。
并发访问同一个流对象可能导致数据争用。

异常安全

基本保证:如果抛出异常,流处于有效状态。

另见