函数
<ios> <iostream>

std::showbase

ios_base& showbase (ios_base& str);
显示数字的进制前缀
str 流设置 showbase 格式标志。

当设置 showbase 格式标志时,插入输出流的数值整型将带有 C++ 字面量常量使用的相同前缀:十六进制值带有 0x (参见 hex),八进制值带有 0 (参见 oct),而十进制值则没有前缀 (参见 dec)。

可以使用 noshowbase 操纵器来取消设置此选项。当未设置时,所有数值都将不带进制前缀插入。

对于标准流,showbase 标志在初始化时是未设置的。

参数

str
格式标志受影响的流对象。
因为此函数是一个操纵符,它被设计为在不带参数的情况下,与流上的插入 (<<) 和提取 (>>) 操作结合使用(见下例)。

返回值

参数 str

示例

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

int main () {
  int n = 20;
  std::cout << std::hex << std::showbase << n << '\n';
  std::cout << std::hex << std::noshowbase << n << '\n';
  return 0;
}

输出
0x14
14


数据竞争

修改 str。对同一个流对象的并发访问可能导致数据竞争。

异常安全

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

另见