cout的格式化输出

1、十进制、八进制、十六进制

cout << dec;      //十进制
cout << oct;      //八进制
cout << hex;      //十六进制,等同于hex(cout);

2、输出的宽度调整

cout.width(3);    //width()只对下一个将显示的内容起作用
cout << 1;        //显示“  1”

3、填充字符

cout.fill('*');    //使用*填充字段未被使用的部分,一直有效除非再次被更改

4、精度

cout.precision(2);  //精度设为2

5、setf()

  • 打印末尾的0和小数点
cout.setf(ios_base::showpoint);  //按照精度显示小数点及小数点后的0
  • fmtflags setf(fmtflags);
cout.setf(ios_base::boolalpha);
常量 含义
ios_base::boolalpha 输入和输出bool值,可以为true或false
ios_base::showbase 对于输出,使用C++基数前缀(0,0x)
ios_base::showpoint 显示末尾的小数点
ios_base::uppercase 对于16进制输出,使用大写字母,E表示法
ios_base::showpos 在正数前面加上+
  • fmtflags setf(fmtflags,fmtflags);
第二个参数 第一个参数 含义
ios_base::basefield ios_base::dec
ios_base::oct
ios_base::hex
使用基数10
使用基数8
使用基数16
ios_base::floatfield ios_base::fixed
ios_base::scientific
使用定点计数法
使用科学计数法
ios_base::adjustfield ios_base::left
ios_base::right
ios_base::internal
使用左对齐
使用右对齐
符号或基数前缀左对齐,值右对齐

eg.

ios_base::fmtflags old = cout.setf(ios_base::left, ios_base::adjustfield);  //设为左对齐
cout.setf(old, ios_base::adjustfield);      //恢复默认
//cout.unsetf(ios_base::adjustfield);       //恢复默认的另一种方式

6、标准控制符(更方便的用法)
eg.

cout << left << fixed;

提供包括boolalpha、noboolalpha、showbase、noshowbase、showpoint、noshowpoint、showpos、noshowpos、uppercase、nouppercase、internal、left、right、dec、hex、oct、fixed、scientific。

7、头文件iomanip

  • setprecision()
  • setw()
  • setfill()

eg.

#include <iomanip>
……
cout << setprecision(2) << n;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 时间过得好快,一转眼2008已经距离我们快十年之久了,那首我们的歌,总是让我湿润双眼。 那一年,拥抱着,缠绵着,折...
    靖靖de阅读 1,072评论 0 0
  • 今天胃疼,所以心情也就不好,人啊,一处于逆境就会有很多的情感想表达,我总要到这样的时候才会有那个心思静下心来,写些...
    凓桔阅读 1,443评论 0 0
  • 肯恩第67课 第六十七课 爱把我创造得犹如它自身一样 (1:1~5)今天的观念可谓一语道破你的真相。你是世界之光,...
    台Jennifer阅读 2,206评论 1 2
  • 姓名:刘云 公司:前垣 纺织有限公司 盛和塾第310期六项精进努力一组 【日精进打卡第46天】 【知~学习】 《六...
    云淡风轻钰阅读 503评论 0 0
  • 昨晚上课的内容是画荷花,画着画着忽然想起我第一次画荷花的那天来,那已经是十年以前了。 初中毕业的那个暑假,有一天清...
    暖清阳阅读 2,415评论 5 2