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格式化输出(输出格式)完全攻略
链接