std::ios_base::fmtflags
来自cppreference.com
typedef /*implementation defined*/ fmtflags; |
||
static constexpr fmtflags dec = /*implementation defined*/ static constexpr fmtflags oct = /*implementation defined*/ |
||
static constexpr fmtflags left = /*implementation defined*/ static constexpr fmtflags right = /*implementation defined*/ |
||
static constexpr fmtflags scientific = /*implementation defined*/ static constexpr fmtflags fixed = /*implementation defined*/ |
||
static constexpr fmtflags boolalpha = /*implementation defined*/ static constexpr fmtflags showbase = /*implementation defined*/ |
||
指定可用的格式化标志。它是位掩码类型 (BitmaskType) 。定义下列常量:
常量 | 解释 |
dec | 为整数输入/输出使用十进制底:见 std::dec |
oct | 为整数输入/输出使用八进制底:见 std::oct |
hex | 为整数输入/输出使用十六进制底:见 std::hex |
basefield | dec | oct | hex。适用于掩码运算 |
left | 左校正(添加填充字符到右):见 std::left |
right | 右校正(添加填充字符到左):见 std::right |
internal | 内部校正(添加填充字符到内部选定点):见 std::internal |
adjustfield | left | right | internal。适用于掩码运算 |
scientific | 用科学记数法生成浮点类型,或在与 fixed 组合时用十六进制记法:见 std::scientific |
fixed | 用定点记法生成浮点类型,或在与 scientific 组合时用十六进制记法:见 std::fixed |
floatfield | scientific | fixed。适用于掩码运算 |
boolalpha | 以字母数字格式插入并提取 bool 类型:见 std::boolalpha |
showbase | 生成为整数输出指示数字基底的前缀,货币输入/输出中要求现金指示器:见 std::showbase |
showpoint | 无条件为浮点数输出生成小数点字符:见 std::showpoint |
showpos | 为非负数值输出生成 + 字符:见 std::showpos |
skipws | 在具体输入操作前跳过前导空白符:见 std::skipws |
unitbuf | 在每次输出操作后冲入输出:见 std::unitbuf |
uppercase | 在具体输出的输出操作中以大写等价替换小写字符:见 std::uppercase |
示例
下列示例展示打印同一结果的数种不同方式。
运行此代码
#include <iostream> int main() { int num = 150; // 以 fmtflags 为类成员常量: std::cout.setf(std::ios_base::hex, std::ios_base::basefield); std::cout.setf(std::ios_base::showbase); std::cout << num << '\n'; // 以 fmtflags 为继承的类成员常量: std::cout.setf (std::ios::hex , std::ios::basefield); std::cout.setf (std::ios::showbase); std::cout << num << '\n'; // 以 fmtflags 为对象成员常量: std::cout.setf(std::cout.hex, std::cout.basefield); std::cout.setf(std::cout.showbase); std::cout << num << '\n'; // 以 fmtflags 为类型: std::ios_base::fmtflags ff; ff = std::cout.flags(); ff &= ~std::cout.basefield; // 解除设置 basefield 位 ff |= std::cout.hex; // 设置 hex ff |= std::cout.showbase; // 设置 showbase std::cout.flags(ff); std::cout << num << '\n'; // 不使用 fmtflags ,但使用操纵符: std::cout << std::hex << std::showbase << num << '\n'; }
输出:
0x96 0x96 0x96 0x96 0x96
参阅
管理格式标志 (公开成员函数) | |
设置特定格式标志 (公开成员函数) | |
清除特定格式的标志 (公开成员函数) | |
更改用于整数 I/O 的基数 (函数) | |
更改填充字符 (函数模板) | |
(C++11)(C++11) |
更改用于浮点 I/O 的格式化 (函数) |
控制是否使用前缀指示数值基数 (函数) | |
在布尔值的文本和数值表示间切换 (函数) | |
控制是否将 + 号与非负数一同使用 (函数) | |
控制浮点表示是否始终包含小数点 (函数) | |
控制是否每次操作后冲洗输出 (函数) | |
控制是否跳过输入上的前导空白符 (函数) | |
控制一些输出操作是否使用大写字母 (函数) |