C++中如何象printf一样设置显示格式

使用前需引用头文件

include

cout.precision(x),setprecision(x)设置精度

float f = 33.456;

cout.precision(3);
cout<<f<<endl;

cout<<setprecision(3)<<f<<endl;
// out:33.5

一些其它函数

dec //置基数为10 相当于"%d" 
hex //置基数为16 相当于"%X" 
oct  //置基数为8 相当于"%o" 
setfill(c) //设填充字符为c 
setprecision(n) //设显示小数精度为n位 
setw(n) //设域宽为n个字符,默认右对齐,字符超过时不起作用
setioflags(ios::fixed)            //固定的浮点显示 
setioflags(ios::scientific)      //指数表示 
setiosflags(ios::left)            //左对齐 
setiosflags(ios::right)          //右对齐 
setiosflags(ios::skipws)      // 忽略前导空白 
setiosflags(ios::uppercase) //16进制数大写输出 
setiosflags(ios::lowercase) //16进制小写输出 
setiosflags(ios::showpoint)// 强制显示小数点 
setiosflags(ios::showpos)  //强制显示符号

一些示例

double a=123.456789012345;
cout<<a;//123.456  
cout<<setprecision(9)<<a;//123.456789  
cout<<setprecision(6);//精度为6
cout<< setiosflags(ios::fixed);//123.456789
cout<<setiosflags(ios::fixed)<<setprecision(8)<<a;//123.45678901
cout<<setiosflags(ios::scientific)<<a;//1.234568e+02
cout<<setiosflags(ios::scientific)<<setprecision(4)<<a; //1.2346e02

//int
int b=123456;
cout<<b;// 123456
cout<<hex<<b; // 1e240     
cout<<setiosflags(ios::uppercase)<<b;// 1E240     
cout<<setw(10)<<b<<′,′<<b; //     123456,123456
cout<<setfill(′*′)<<setw(10)<<b;// **** 123456
cout<<setiosflags(ios::showpos)<<b;// +123456

引自:http://www.cnblogs.com/this-543273659/archive/2011/09/08/2170964.html

引自:http://hi.baidu.com/sowyer2010/blog/item/828161ca3bc94237b600c8fc.html


原文链接: https://www.cnblogs.com/t427/archive/2012/06/02/2532070.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/51732

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午3:18
下一篇 2023年2月9日 上午3:18

相关推荐