std::ios_base::setf

来自cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
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
basefielddec | oct | hex。适用于掩码运算
left 左对齐(添加填充字符到右侧):见 std::left
right 右对齐(添加填充字符到左侧):见 std::right
internal 居中对齐(添加填充字符到内部选定点):见 std::internal
adjustfieldleft | right | internal。适用于掩码运算
scientific 用科学记数法生成浮点数类型,或在与 fixed 组合时用十六进制记法:见 std::scientific
fixed 用定点记法生成浮点数类型,或在与 scientific 组合时用十六进制记法:见 std::fixed
floatfieldscientific | 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(){constdouble PI =std::numbers::pi;constint 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

[编辑]参阅

管理格式标志
(公开成员函数)[编辑]
清除特定格式的标志
(公开成员函数)[编辑]
close