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

使用前需引用头文件

#include <iomanip>

 

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

 

你可能感兴趣的:(printf)