C++ 流控制函数setw()、setfill()、setbase()、setprecision()的使用
ps : 为什么要提这个呢, 因为在c++ 中 %.2f 输出double 型可能会报错
头文件
1
2
| #include <iostream>
#include <iomanip>
|
功能
std::setw :需要填充多少个字符,默认填充的字符为’ ‘空格
std::setfill:设置std::setw将填充什么样的字符,如:std::setfill(‘*’)
std::setbase(n):将输出数据转换为n进制
std::setprecision():控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。
样例
1
2
3
4
5
6
7
8
9
| cout << setfill('0') << setw(5) << 111 << "\n"; // 若填充的位数小于数字的位数, 则输出原数字
// 等价于
printf("%05d\n", a = 111);
cout << setiosflags(ios::fixed) << setprecision(5) << 3.1415926 << "\n";
//等价于
printf("%.5f\n", a = 3.1415926);
cout << setprecision(5) << 3.1415926 << "\n"; // 保留的数字的总位数是5位
|
最后附上一个C++ cout格式化输出(输出格式)完全攻略
链接