cout的输出格式控制

cout进行格式化操作时可以直接利用setf(),unsetf()和flags()函数,其中的setf()和unsetf()函数是在当前格式状态上追加或者删除指定的格式,flags()函数是将当前格式状态全部替换为指定的格式,其函数的参数如下:

  • ios::dec     //10进制
  • ios::hex     //16进制
  • ios::oct      //8进制
  • ios::showbase        //为整数添加一个表示其进制的前缀
  • ios::internal           //在符号位与数值中插入需要数量的填充字符以使两端对齐
  • ios::left                 //左对齐,可在末尾处填充字符
  • ios::right              //右对齐,可在前面填充字符
  • ios::boolalpha     //将bool型的值以true或false表示,而不是1或0
  • ios::fixed            //浮点数按照普通定点格式处理(非科学计数法)
  • ios::scientific      //浮点数按科学计数法处理
  • ios::showpoint   //浮点数表示的小数中强制插入小数点
  • ios::showpos    //强制在正数前添加+号
  • ios::skipws      //忽略前导的空格(主要用于输入流,如cin)
  • ios::unitbuf     //在插入(每次输出)操作后清空缓存
  • ios::uppercase     //强制大写字母

以上每种格式独占一位,可用“|”(位或)运算符组合使用

setf()函数接受的参数:

一个参数时:设置指定的格式

两个参数时:前一个参数为设定的格式,后一个参数指定删除的格式

三个参数的组合格式:

  • ios::adjustfield         //对齐格式的组合位
  • ios::basefield          //进制的组合位
  • ios::floatfield           //浮点表示方式的组合位

如果还需要设置其他格式,可使用STL提供的<iomanip>库,故需要包含头文件#include<iomanip>

setw()  //指定输出内容的对齐宽度,例:

cout.flags(ios::left);
cout<<setw(10)<<-456.98<<"End"<<endl;  //or   cout<<left<<setw(10)<<-456.98<<"End"<<endl;
//输出为:-456.98     End

setfill()      //setw()中默认空格为填充字符来控制对齐位置,可与setfill()函数来设置填充字符

cout<<left<<setfill('0')<<setw(10)<<45678<<endl;
//输出结果为:0000045678

控制小数输出时,两种定点表示:ios::fixed(不带指数域)和:ios::scientific(带指数域),与<iomanip>里的setprecision()配合使用保留指定小数点后面的位数;

cout.setf(ios::fixed);
cout<<setprecision(0)<<12.05<<endl;   //12
cout<<setprecision(1)<<12.05<<endl;   //12.1
cout<<setprecision(3)<<12.05<<endl;   //12.050
cout.setf(ios::scientific, ios::floatfield);
cout<<setprecision(0)<<12.05<<endl;   //1.205000e+001
cout<<setprecision(1)<<12.05<<endl;   //1.2e+001
cout<<setprecision(2)<<12.05<<endl;   //1.21e+001
cout<<setprecision(3)<<12.05<<endl;   //1.205e+001

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值