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
浙公网安备 33010602011771号