有时想以16进制输出整数,输出浮点数时保留小数点后2位,输出整数时以6位的宽度输出,宽度不够时向左补0等,希望以一定的格式输出。 C语言的printf ) )函数使用以%开头的格式控件,例如%X、%.2f和m。 C的cout对象是使用流操作符(也称为格式控制)或成员函数控制的。
注:“流操作操作员”栏中的星号*不是操作员的一部分。 如果不使用操作符,星号表示使用的是操作符。 例如,缺省情况下,整数以十进制输出,与使用dec运算符相同。
*dec常用于以十进制格式输出整数
hex以十六进制输出整数
oct以八进制输出整数
fixed以普通小数输出浮点数
scientific将浮点数作为科学计数法输出
左对齐左对齐。 也就是说,如果宽度不够,请向右添加填充字符
*right右对齐,宽度不够时向左侧添加填充字符
setbase(b )设定输出整数时的进制,b=8、10或16
setw(w )将输出宽度指定为w字符,或者在发送字符串时读取w字符
指定输出宽度时,如果输出宽度不够,则用字符c填充setfill(c )。 默认情况下用空格填充。
setprecision(n )将输出浮点数的精度设置为n。
在以非固定且非scientific方式输出的情况下,n是有效数字的最多位数,如果有效数字的位数超过n,则小数部分会四舍五入,或者自动成为科学计数法输出,全部保持n位有效数字。
以fixed方式和scientific方式输出时,n是应该保留在小数点以下的位数。
setiosflags(flag )将输出格式标志设置为1
resetiosflags(flag )将输出格式标志设置为0
boolapha将true和false作为字符串输出的情况很常见
*noboolalpha输出true和false为0、1
showbase输出表示数值的二进制前缀
*noshowbase不输出表示数值的进制.前缀
showpoint总是输出小数点
*noshowpoint仅在存在小数部分时显示小数点
showpos显示为非负值
*noshowpos不显示为非负值
*输入*skipws时跳过空格
输入noskipws时不跳过空白字符
uppercase进制数使用a到e。 输出前缀时,输出前缀为0X,在科学计数法中输出e
*nouppercase二进制数使用a到e。 输出前缀时,输出前缀为0x,在科学计数法中输出e。
内部数字的符号(符号)在指定宽度内左对齐,数字右对齐,中间用填充字符填充。
流操作算子的用法
使用这些运算符的方法是将运算符与cout连用。 例如:
cout hex 12 ',' 24;
此语句的目的是以十六进制格式输出以下两个数: 因此,输出结果如下所示。
c,18
setiosflags (运算符
setiosflags ) )运算符实际上是一个库函数,它以iostream头文件中定义的可能具有以下值的标志作为参数: 这些标志与同名运算符意义相同。
表2:setiosflags ()中可用的标志及其说明
标记的作用
IOs :左输出数据在大范围的本地区域内左对齐
ios:right输出数据在大范围的本地区域内向右对齐
IOs :内部数字的符号位在字段宽度内左对齐,数字右对齐,中间用填充字符填充
ios:dec设置整数的基数为10
ios:oct将整数基数设置为8
ios:hex设置整数的基数为16
ios:showbase强制输出整数基数。 八进制数从0开始,十六进制数从0x开始
ios:showpoint强制输出浮点数的小数点数和尾数0
当以科学记数法格式e和十六进制格式输出字母时,ios:uppercase以大写形式显示
ios:showpos对正数显示“”的号码
ios:scientific浮点数以科学记数法形式输出
ios:fixed浮点数以定点形式(小数形式)输出
ios:unitbuf在每次输出时更新所有流
ios:stdio在每次输出时清除stdout、stderr
实际上,这些标志只有一个位是1,而其他位都是0的整数。