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 | 为整数输入/输出使用十进制底:见 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 <iomanip> #include <iostream> #include <numbers> int main() { const double PI = std::numbers::pi; const int WIDTH = 15; std::cout.setf(std::ios::right); // 等价于: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
参阅
管理格式标志 (公开成员函数) | |
清除特定格式的标志 (公开成员函数) |