C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...?
iomanip是I/O流控制头文件,就像printf的格式化输出一样。
以下是一些常用的:
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) 强制显示符号
1 #include<iostream> 2 #include <iomanip> 3 using namespace std; 4 double d=11.23456; 5 int main() 6 { 7 cout<<d<<endl; //直接输出只能输出6位数,包括整数部分和小数部分 8 cout<<setprecision(3)<<d<<endl; //精度为3,输出3位数 9 cout<<setiosflags(ios::fixed)<<d<<endl; //精度为3,定点输出,输出3位小数 10 cout<<setiosflags(ios::fixed)<<setprecision(7)<<d<<endl;//位数不够,末尾添0 11 return 0; 12 }