std:: dec, std:: hex, std:: oct
From cppreference.net
|
定义于头文件
<ios>
|
||
|
std::
ios_base
&
dec
(
std::
ios_base
&
str
)
;
|
(1) | |
|
std::
ios_base
&
hex
(
std::
ios_base
&
str
)
;
|
(2) | |
|
std::
ios_base
&
oct
(
std::
ios_base
&
str
)
;
|
(3) | |
修改整数输入/输出的默认数值进制。
1)
设置流
str
的
basefield
为
dec
,如同调用
str.
setf
(
std::
ios_base
::
dec
,
std::
ios_base
::
basefield
)
。
2)
将流
str
的
basefield
设置为
hex
,如同调用
str.
setf
(
std::
ios_base
::
hex
,
std::
ios_base
::
basefield
)
。
3)
将流
str
的
basefield
设置为
oct
,如同调用
str.
setf
(
std::
ios_base
::
oct
,
std::
ios_base
::
basefield
)
。
这是一个I/O操纵器。它可以像
out
<<
std
::
hex
这样被调用,其中
out
是
std::basic_ostream
类型的任何输出流;或者像
in
>>
std
::
hex
这样被调用,其中
in
是
std::basic_istream
类型的任何输入流。
目录 |
参数
| str | - | I/O 流的引用 |
返回值
str (指向经过操作后的流的引用)。
示例
运行此代码
#include <bitset> #include <iostream> #include <sstream> int main() { std::cout << "数字42的八进制表示: " << std::oct << 42 << '\n' << "数字42的十进制表示: " << std::dec << 42 << '\n' << "数字42的十六进制表示: " << std::hex << 42 << '\n'; int n; std::istringstream("2A") >> std::hex >> n; std::cout << std::dec << "将\"2A\"解析为十六进制得到 " << n << '\n'; // 输出进制设置会保持生效直到被更改 std::cout << std::hex << "42的十六进制表示为 " << 42 << " 而21的十六进制表示为 " << 21 << '\n'; // 注意:没有I/O操纵符可以直接设置流以二进制格式输出数字(例如bin) // 如需二进制输出,可使用std::bitset技巧: std::cout << "数字42的二进制表示: " << std::bitset<8>{42} << '\n'; }
输出:
数字42的八进制表示: 52 数字42的十进制表示: 42 数字42的十六进制表示: 2a 将"2A"解析为十六进制得到 42 42的十六进制表示为 2a 而21的十六进制表示为 15 数字42的二进制表示: 00101010
参见
|
修改用于整数输入/输出的进制基数
(函数) |
|
|
控制是否使用前缀指示数值进制
(函数) |