C++ iomanip

C++的cout,cin等为ios类的派生类,可进行格式化输入输出

一.用到的ios类中的几个静态常量:

left,right,dec,oct,hex,showbase,showpoint,showpos,scientific,fixed,uppercase,lowercase

left 左对齐

right 右对齐

dec 置基数为10 相当于"%d"

hex 置基数为16 相当于"%X"

oct 置基数为8 相当于"%o"

showbase 显示进制

showpoint 强制显示小数点

showpos 强制显示符号

scientific 指数形式

fixed 固定的浮点显示

uppercase 16进制数大写输出

lowercase 16进制小写输出 //VS2010中已不使用

二.函数

类中成员函数(cout.setf() )

相应的全局函数

setf(),flags()

setiosflags()

precision()

setprecision()

width()

setw()

fill()

setfill()

 

setbase()

 

resetiosflags()

1.cout.setf(),cout.flags(),setiosflags() 用于设定格式化输出,以上静态常量作为参数

如:cout.flags(ios::left|ios::hex|ios::showbase);

       setiosflags(ios::left|ios::hex|ios::showbase);

2.cout.precision(n),setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。

如果setprecision(n)等与setiosflags(ios::fixed)等合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。

如果与setiosflags(ios::scientific)等合用, 可以控制指数表示法中系数的小数点后的位数。setiosflags(ios::scientific)是用指数方式表示实数。

如果setprecision(n)等设置了,但setiosflags(ios::fixed)没设置,即显示常规浮点数时,指总共的位数。

如果setprecision(n)等设置了,但setiosflags(ios::scientific)没设置,当浮点数较大,系统自动显示指数形式时,此时指系数总共的位数。

3.fill(char c),setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充

4.setw只作用于紧随其后的部分!!!

5.setbase(int n) : 将数字转换为 n 进制.不是一次性的,而且能覆盖之前设置的ios::oct,ios::dec,ios::hex等

6.resetflags(long f),该方法是setiosflags方法的反向方法,即清除之前语句中所使用的setiosflags设定的格式,恢复为默认格式。

取消哪个格式,参数就放哪个格式

如:cout.flags(ios::oct);
       cout<<12<<endl;
       cout<<resetiosflags(ios::oct);//取消ios::oct
       cout<<12<<endl;

运行结果:14

                  12

例子:

#include<iostream>
#include<iomanip>
using  namespace  std;
int  main()
{
cout<<12345.0<<endl; //输出"12345"
cout<<setiosflags(ios::fixed)<<setprecision(3)<<1.2345<<endl; //输出"1.234"(遵循四舍六入五成双的原则,而不是四舍五入的原则)
cout<<resetiosflags(ios::fixed); //需要用resetiosflags()函数清除前面的输出格式
cout<<setiosflags(ios::scientific)<<12345.0<<endl; //输出"1.23e+004"
cout<<setiosflags(ios::fixed)<<setprecision(3)<<12345.0<<endl; //输出"1.23e+004"
return  0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值