c++ 流格式控制符处理

添加头文件#include <iomanip>

使用控制符控制输出格式

控制符

作用

dec

设置整数的基数为10

hex

设置整数的基数为16

oct

设置整数的基数为8

setbase(n)

设置整数的基数为n(n只能是16,10,8之一)

setfill(c)

设置填充字符c,c可以是字符常量或字符变量

setprecision(n)

设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数。

setw(n)

设置字段宽度为n位。

setiosflags(ios::fixed)

设置浮点数以固定的小数位数显示。

setiosflags(ios::scientific)

设置浮点数以科学计数法(即指数形式)显示。

setiosflags(ios::left)

输出数据左对齐。

setiosflags(ios::right)

输出数据右对齐。

setiosflags(ios::shipws)

忽略前导的空格。

setiosflags(ios::uppercase)

在以科学计数法输出E和十六进制输出字母X时,以大写表示。

setiosflags(ios::showpos)

输出正数时,给出“+”号。

resetiosflags

终止已设置的输出格式状态,在括号中应指定内容。

1.setw() 函数用于设置字段的宽度,语法格式如下:

setw(n) n表示宽度,用数字表示。

setw() 函数只对紧接着的输出产生作用。

当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出

cout<<setw(10)<<"hello"<<endl;

hello 大小是5,会在hello前面5个空格。

2.setprecision(n)

setprecision(n)指定一个浮点数的精度。

可以指定一个浮点数打印几位数字,其中n是总位数!!包括小数之前和之后的数字。超出的位数会被四舍五入进去!!!

例如

double num = 1.23456;

cout<<setprecision(2)<<num<<endl;   ---- 输出1.2

cout<<setprecision(4)<<num<<endl;   ---- 输出1.235

cout<<setprecision(5)<<num<<endl;   ---- 输出1.22346

注意:与setw()不同setprecision(n)一直作用到下一个setprecisin(n)之前,所以,只需要写一个setprecision(n)就可以setw()要每次都写。

3.fixed

fixed可以强制数值不以科学技术法显示,即只用小数形式显示。

(在遇见大的浮点数时候,计算机会以科学技术法形式显示浮点数)默认情况下,使用fixed之后,小数点后面数字位数为6,

如:double i  = 1.23;

cout<<fixed<<i<<endl;

会输出1.230000

我们可以使用fixed和setprecision(n)一起使用的方法,来改变这个小数点后的位数,当setprecision(n)作用于fixed之后时候,

setprecision(n)指定的是小数点后的数字位数

如:double num = 3.141592653;

cout<<fixed<<setprecision(2)<<num<<endl;

输出:3.14

注意,默认情况下,没有小数的部分不会显示小数点。但使用fixed之后,会强制显示小数点

如double i= 1;

cout<<fixed<<i<<endl;

显示 1.000000

4.showpoint (与setprecision(n)一起使用)

showpoint 强制小数后面以0显示。

cout<<setprecision(6);

cout<<showpoint<<1.23<<endl; ----显示 1.23000

cout<<showpoint<<123.0<<endl; ----显示 123.000

5. right /left  对齐方式

大多数系统默认情况下为右对齐,

可以使用;eft ,将输出格式左对齐

用法

cout<<left;

cout<<setw(8)<<1.23<<endl;

cout<<setw(8)<<1.23456<<endl;

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值