输出格式化控制
输出格式化控制,通常是指针对整形,浮点型数据等数值类型,为了统一格式而人为控制数字的显示格式。
浮点数输出格式控制
对于double这样的类型,如果是循环小数,比如:
double i = 100/3; //33.333333333333.....
double you = 200/3; //66.666666666666.....
我们希望输出两位小数,应该怎么控制格式呢?
std::fixed 表示使用小数计数法(固定小数点位置),而不是科学计数法显示浮点数(浮动小数点位置)。
std::setprecision(n) 表示小数部分保留n位,最后一位使用四舍五入法显示浮点数。
#include <iostream>
#include <iomanip>//控制格式fixed setw setprecision
using namespace std;
int main()
{
double i = 100 / 3.0; //33.33333333333......
double you = 200 / 3.0; //66.66666666666......
//fixed使用小数计数法(而不是科学计数法)显示浮点数
//setprecision(4) 小数部分保留4位,最后一位四舍五入
cout << fixed << setprecision(4)
<< i << endl
<< you<< endl
;
}
输出如下:
数字宽度
设置输出的总宽度,通常用来对齐显示数据。
http://www.cplusplus.com/reference/iomanip/setw/
// setw example
#include <iostream> // std::cout, std::endl
#include <iomanip> // std::setw
int main () {
std::cout << std::setw(10);
std::cout << 77 << std::endl;
return 0;
}
输出:
77
填充字符
数字本身宽度不够,用填充字符填充显示。通常填充空格符,和setw一起用来对齐数据。
// setfill example
#include <iostream> // std::cout, std::endl
#include <iomanip> // std::setfill, std::setw
int main () {
std::cout << std::setfill ('x') << std::setw (10);
std::cout << 77 << std::endl;
return 0;
}
输出:
xxxxxxxx77
输出true false
std::cout<<std::boolalpha << b << std::endl;