c++ cout格式化

一:修改显示时使用的计数系统

  控制整数以什么进制显示

  1.十进制 cout<<dec

  2.十六进制cout<<hex

  3.八进制cout<<oct

二:调整字段宽度(默认右对齐)

  int width():返回字段宽度的当前格式;

  int width(int i):将宽度设置为i个空格,并返回以前的字段宽度值

注意:width()方法只影响将显示的下一个项目,然后字段宽度将恢复到默认值

三:填充字段

  cout.full('*');

    设置一直有效直到新的设置

四:设置浮点数的显示精度

  c++的默认精度为6位(末尾0不显示) 

方法:cout.precision(i);

    设置一直有效直到新的设置

五:打印末尾的0和小数点

  方法:cout.setf(ios_base::showpoint);

六:再谈setf()

  第一个原型:fmtflags setf(fmtflahs);

    ios_base::boolalpha ;   输入和输出bool值,可以为true和false
    ios_base::showbase;    对于输出,使用c++基数前缀(0,0x)
    ios_base::showpoint;    显示末尾小数点
    ios_base::uppercase;    对于16进制输出,使用大写字母,E表示法
    ios_base::showpos;     在正数前加上+

  第二个原型:fmtfalgs setf(fmtflags,fmtflags);

  方法:设置由多位控制的格式选项,第一个参数和上一个一样,第二个参数指出要清除第一个参数的哪些位

    第二个参数                  第二个参数                        含义
ios_base::basefield          ios_base::dec                    使用基数10
ios_base::basefield          ios_base::oct                    使用基数8
ios_base::basefield          ios_base::hex                    使用基数16    
ios_base::floatfield          ios_base::fixed                 使用定点计数法
ios_base::floatfield          ios_base::scientific            使用科学计数法
ios_base::sdjustfield        ios_base::left                 使用左对齐
ios_base::sdjustfield        ios_base::right                用右对齐
ios_base::sdjustfield        ios_base::internal              符号或基数前缀左对齐,值右对齐

如何恢复以前的默认:

    ios_base::fmtflags old=cout.setf(ios_base::left,ios_base::adjustfield);

    cout.setf(old,ios_base::adjustfield);

清除设置

    cout.unsetf(fmtflags mask);

七:标准控制符

  cout<<left<<fixed;

八:iomanip头文件
   setprecision() 设置精度

   setfill()  填充字段

   setw()  字段宽度

  他们都接受参数    

posted @ 2012-05-02 13:51  open your eyes  阅读(518)  评论(0编辑  收藏  举报