std::ios_base::fmtflags
来自 cppreference.cn
| 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 | 对整数 I/O 使用十进制基数:参阅 std::dec |
| oct | 对整数 I/O 使用八进制基数:参阅 std::oct |
| hex | 对整数 I/O 使用十六进制基数:参阅 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 | 为整数输出生成指示数字基数的后缀,在货币 I/O 中要求货币指示符:参阅 std::showbase |
| showpoint | 为浮点数输出无条件生成小数点字符:参阅 std::showpoint |
| showpos | 为非负数输出生成 + 字符:参阅 std::showpos |
| skipws | 在某些输入操作前跳过前导空格:参阅 std::skipws |
| unitbuf | 每次输出操作后刷新输出:参阅 std::unitbuf |
| uppercase | 在某些输出操作中将某些小写字母替换为其大写等效项:参阅 std::uppercase |
[编辑] 示例
以下示例展示了以几种不同方式打印相同结果。
运行此代码
#include <iostream> int main() { const int num = 150; // using fmtflags as class member constants: std::cout.setf(std::ios_base::hex, std::ios_base::basefield); std::cout.setf(std::ios_base::showbase); std::cout << num << '\n'; // using fmtflags as inherited class member constants: std::cout.setf (std::ios::hex, std::ios::basefield); std::cout.setf (std::ios::showbase); std::cout << num << '\n'; // using fmtflags as object member constants: std::cout.setf(std::cout.hex, std::cout.basefield); std::cout.setf(std::cout.showbase); std::cout << num << '\n'; // using fmtflags as a type: std::ios_base::fmtflags ff; ff = std::cout.flags(); ff &= ~std::cout.basefield; // unset basefield bits ff |= std::cout.hex; // set hex ff |= std::cout.showbase; // set showbase std::cout.flags(ff); std::cout << num << '\n'; // not using fmtflags, but using manipulators: std::cout << std::hex << std::showbase << num << '\n'; }
输出
0x96 0x96 0x96 0x96 0x96
[编辑] 另请参见
| 管理格式标志 (公共成员函数) | |
| 设置特定格式标志 (公共成员函数) | |
| 清除特定格式标志 (公共成员函数) | |
| 更改整数 I/O 所用的基数 (函数) | |
| 更改填充字符 (函数模板) | |
| (C++11)(C++11) |
更改浮点 I/O 所用的格式 (函数) |
| 控制是否使用前缀指示数字基数 (函数) | |
| 在布尔值的文本表示和数字表示之间切换 (函数) | |
控制非负数是否使用 + 符号(函数) | |
| 控制浮点表示中是否始终包含小数点 (函数) | |
| 控制每次操作后是否刷新输出 (函数) | |
| 控制输入时是否跳过前导空白字符 (函数) | |
| 控制某些输出格式是否使用大写字符 (函数) |