精度输出
在默认的浮点表示法中,精度字段指定小数点前后显示的有意义数字的最大数量
std::fixed
std::fixed – 固定浮点表示法:它以定点表示法写入浮点值。该值的小数部分位数与精度字段(精度)指定的位数完全相同,并且没有指数部分。设置后如果不切换为其他模式,如std::senticific(它以科学点表示法写入浮点值。该值始终仅用小数点前一位数字表示,后跟小数点和与精度字段 (精度) 一样多的小数位数。最后,该表示法始终包含由字母“ e ”组成的指数部分,后跟可选符号和三个指数数字。)double a = 4.342434245
std::cout<<std::fixed<<a
输出结果: 4.342424 (精度默认为6)
std::set_precision()
设置输出精度字段,设置一次即可,最大可设置为19
constexpr long double pi{std::numbers::pi_v<long double>};
1 |
|
输出结果:
precision: pi:
0 3
1 3
2 3.1
3 3.14
4 3.142
5 3.1416
6 3.14159
7 3.141593
8 3.1415927
9 3.14159265
10 3.141592654
std::setw()
更改且只更改下一个输入/输出字段的宽度。当在表达式 out << setw(n) 或 in >> setw(n) 中使用时,将流 out 或 in 的宽度参数精确设置为 n
应用到输出流
1 |
|
输出结果:
没有 setw:[42]
setw(6):[ 42]
setw(6),并输出多个元素:[89 1234]
应用到输入流
1 |
|
arr = “hello\0”
std::left
设置字符输出为左对齐
std::setfill(char c)
设置当字符串输出宽度达不到setw的值时的填充字符c
组合以上方法的实例
1 |
|
输出结果:
用于填充并迭代 1 个 int 的 vector 需要 : 0.000006568s
用于填充并迭代 100 个 int 的 vector 需要 : 0.000002854s
用于填充并迭代 10000 个 int 的 vector 需要 : 0.000116290s
用于填充并迭代 1000000 个 int 的 vector 需要 : 0.011742752s
用于填充并迭代 100000000 个 int 的 vector 需要 : 0.505534949s