函数
<iomanip>

std::setbase

/*unspecified*/ setbase (int base);
设置基数字段标志
basefield 设置为其可能值之一: dechexoct,具体取决于参数 base

就好像在流上调用了 setf(which,ios_base::basefield) 一样,其中 which
  • base10 时,为 dec
  • base16 时,为 hex
  • base8 时,为 oct
  • base 为其他任何值时,为零。

它可以插入/提取到输入流输出流中。

此操纵符在头文件 <iomanip> 中声明。

参数

base
要使用的数字进制
base 参数与插入...相同
8oct
10dec
16hex
任何其他resetiosflags(ios_base::basefield)

返回值

未指定。此函数只应作为流操纵符使用(见示例)。

示例

1
2
3
4
5
6
7
8
9
// setbase example
#include <iostream>     // std::cout, std::endl
#include <iomanip>      // std::setbase

int main () {
  std::cout << std::setbase(16);
  std::cout << 110 << std::endl;
  return 0;
}

此代码使用 setbase 操纵器将十六进制设置为 basefield 选择性标志。

输出
6e


数据竞争

它被插入/提取到的流对象会被修改。
对同一流对象的并发访问可能会引发数据竞争。

异常安全

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

另见