stdsetiosflags
当在表达式 out << setiosflags(mask)
或 in >> setiosflags(mask)
中使用时,将流的所有格式标志设置为由掩码指定的输出或输入。
所有 std::ios_base::fmtflags
的列表:
dec
- 对整数 I / O 使用十进制基数oct
- 对整数 I / O 使用八进制基数hex
- 对整数 I / O 使用十六进制基数basefield
-dec|oct|hex|0
对掩码操作很有用left
- 左调整(在右边添加填充字符)right
- 右调整(在左侧添加填充字符)internal
- 内部调整(将填充字符添加到内部指定点)adjustfield
-left|right|internal
。对掩码操作很有用scientific
- 使用科学记数法生成浮点类型,或者如果与固定符号结合使用十六进制表示法fixed
- 使用固定表示法生成浮点类型,如果与科学结合使用,则生成十六进制表示法floatfield
-scientific|fixed|(scientific|fixed)|0
。对掩码操作很有用boolalpha
- 以字母数字格式插入和提取bool
类型showbase
- 生成一个前缀,指示整数输出的数字基数,需要货币 I / O 中的货币指标showpoint
- 无条件地为浮点数输出生成小数点字符showpos
- 为非负数字输出生成+
字符skipws
- 在某些输入操作之前跳过前导空格unitbuf
在每次输出操作后刷新输出uppercase
- 在某些输出输出操作中将某些小写字母替换为大写字母
操作器示例:
#include <iostream>
#include <string>
#include<iomanip>
int main()
{
int l_iTemp = 47;
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::oct)<<l_iTemp<<std::endl;
//output: 57
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::hex)<<l_iTemp<<std::endl;
//output: 2f
std::cout<<std::setiosflags( std::ios_base::uppercase)<<l_iTemp<<std::endl;
//output 2F
std::cout<<std::setfill('0')<<std::setw(12);
std::cout<<std::resetiosflags(std::ios_base::uppercase);
std::cout<<std::setiosflags( std::ios_base::right)<<l_iTemp<<std::endl;
//output: 00000000002f
std::cout<<std::resetiosflags(std::ios_base::basefield|std::ios_base::adjustfield);
std::cout<<std::setfill('.')<<std::setw(10);
std::cout<<std::setiosflags( std::ios_base::left)<<l_iTemp<<std::endl;
//output: 47........
std::cout<<std::resetiosflags(std::ios_base::adjustfield)<<std::setfill('#');
std::cout<<std::setiosflags(std::ios_base::internal|std::ios_base::showpos);
std::cout<<std::setw(10)<<l_iTemp<<std::endl;
//output +#######47
double l_dTemp = -1.2;
double pi = 3.14159265359;
std::cout<<pi<<" "<<l_dTemp<<std::endl;
//output +3.14159 -1.2
std::cout<<std::setiosflags(std::ios_base::showpoint)<<l_dTemp<<std::endl;
//output -1.20000
std::cout<<setiosflags(std::ios_base::scientific)<<pi<<std::endl;
//output: +3.141593e+00
std::cout<<std::resetiosflags(std::ios_base::floatfield);
std::cout<<setiosflags(std::ios_base::fixed)<<pi<<std::endl;
//output: +3.141593
bool b = true;
std::cout<<std::setiosflags(std::ios_base::unitbuf|std::ios_base::boolalpha)<<b;
//output: true
return 0;
}