std::ios_base::setf
来自 cppreference.com
fmtflags setf( fmtflags flags ); |
(1) | |
fmtflags setf( fmtflags flags, fmtflags mask ); |
(2) | |
将格式化标志设置为指定的设置。
1) 设置由 flags 标识的格式化标志。实际上,执行以下操作 fl = fl | flags,其中
fl
定义了内部格式化标志的状态。2) 清除 mask 下的格式化标志,并将已清除的标志设置为 flags 指定的标志。实际上,执行以下操作 fl = (fl & ~mask) | (flags & mask),其中
fl
定义了内部格式化标志的状态。内容 |
[编辑] 参数
flags, mask | - | 新的格式化设置。 mask 定义了哪些标志可以被更改, flags 定义了哪些标志将被更改。这两个参数可以是 格式化标志 常量的组合 |
[编辑] 格式化标志
常量 | 解释 |
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 <iomanip> #include <iostream> #include <numbers> int main() { const double PI = std::numbers::pi; const int WIDTH = 15; std::cout.setf(std::ios::right); // equivalent: cout << right; std::cout << std::setw(WIDTH / 2) << "radius" << std::setw(WIDTH) << "circumference" << '\n'; std::cout.setf(std::ios::fixed); // equivalent: cout << fixed; for (double radius = 1; radius <= 6; radius += 0.5) std::cout << std::setprecision(1) << std::setw(WIDTH / 2) << radius << std::setprecision(2) << std::setw(WIDTH) << (2 * PI * radius) << '\n'; }
输出
radius circumference 1.0 6.28 1.5 9.42 2.0 12.57 2.5 15.71 3.0 18.85 3.5 21.99 4.0 25.13 4.5 28.27 5.0 31.42 5.5 34.56 6.0 37.70
[编辑] 另请参阅
管理格式标志 (public member function) | |
清除特定格式标志 (public member function) |