C++中setiosflags的一些用法

setiosflags的参数是该流的格式标志值,这个值由如下位掩码(ios枚举器)指定,并可用位或OR(|)运算符进行组合:
    ios::skipws  在输人中跳过空白。    
    ios::left  左对齐值,用填充字符填充右边。
    ios::right  右对齐值;用填充字符填充左边(缺省对齐方式)。
    ios::internal  在指定任何引导标记或基之后增加填充字符。
    ios::dec  以基10(十进制)格式化数值(缺省进制)。
    ios::oct  以基8(八进制)格式化数值。
    ios::hex  以基16(十六进制)格式化数值。
    ios::showbase  以C++编译器能读的格式显示数值常量。
    ios::showpoint  对浮点数值显示小数点和尾部的0。
    ios::uppercase  对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E。
    ios::showpos  对于正数显示正号(+)。
    ios::scientific  以科学格式显示浮点数值。
    ios::fixed  以定点格式显示浮点数值。
    ios::unitbuf  导致在每次插入之后ostream::osfx刷新该流。缺省地,cerr是缓冲的单元。
    ios::stdio  导致在每次插入之后ostream::osfx刷新该流的stdout和stderr。

setiosflags( ios::fixed ),头文件为:include<iomanip>.

在遇到要计算浮点数且希望能控制其输出、精度、小数点后的位数等时,用setiosflags( ios::fixed )来控制。

1. setprecision( )

使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。setprecision(n)就是输出n个数,会有四舍五入。

2. setiosflags(ios::fixed)

setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。

例如:

cout << "第" << setiosflags(ios::right)<< setw(3) << i + 1 << 
            "个人的红包是:" << setiosflags(ios::right) << setw(6) << 
            setiosflags(ios::fixed) << setprecision(2) << 
            round(b[i] * 100) / 100.0 ;

https://blog.csdn.net/panhe1992/article/details/6918643

原文地址:https://www.cnblogs.com/gkh-whu/p/11486320.html