std::ios_base:: setf
From cppreference.net
|
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); // 等效于: cout << right; std::cout << std::setw(WIDTH / 2) << "radius" << std::setw(WIDTH) << "circumference" << '\n'; std::cout.setf(std::ios::fixed); // 等效于: 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
参见
|
管理格式标志
(公开成员函数) |
|
|
清除特定格式标志
(公开成员函数) |