C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符相关的知识,希望对你有一定的参考价值。

1. 控制浮点数格式

可以控制浮点数输出三个种格式

• 以多高精度( 多少个数字) 打印浮点值
• 数值是打印为十六进制、 定点十进制还是科学记数法形式
• 对于没有小数部分的浮点值是否打印小数点

1.1 默认情况格式

  • 浮点值按六位数字精度打印;
  • 如果浮点值没有小数部分, 则不打印小数点:
  • 根据浮点数的值选择打印成定点十进制或科学记数法形式。

标准库会选择一种可读性更好的格式: 非常大和非常小的值打印为科学记数法形式, 其他值打印为定点十进制形式

1.2 指定打印精度

setprecision

//cout.precison返回当前精度值
cout << "Precision: " << cout.precision()
     << ", Value:"    << sqrt(2.0) << endl;
cout.precision(12);    //将打印精度设置为12位数字
cout << "Precision: " << cout.precision()
     << ", Value:"    << sqrt(2.0) << endl;
//使用setprecision操作符将打印精度设置为3位数字
cout << setprecision(3);    
cout << "Precision: " << cout.precision()
     << ", Value:"    << sqrt(2.0) << endl;

输出:

Precision: 6, Value: 1.41421
Precision: 12, Value: 1.41421356237
Precision: 3, Value: 1.41

1.3 定义在iostream中的操作符

操作符描述
boolalpha将true和false输出为字符串
noboolalpha将true和false输出为1, 0
showbase对整型值输出表示进制的前缀
noshowbase不生成表示进制的前缀
showpoint对浮点值总是显示小数点
noshowpoint只有当浮点值包含小数部分是才显示小数点
showpos对非负数显示+
noshowpos对非负数不显示+
uppercase在十六进制值值打印0X,在科学计数法中打印E
nouppercase在十六进制值值打印0x,在科学计数法中打印e
dec整数值显示为十进制
hex整数值显示为十六进制
otc整数值显示为八进制
left在值的右侧添加填充字符
right在值的左侧添加填充字符
internal在符号和值之间添加填充字符
fixed浮点值显示为定点十进制
scientific浮点值显示为科学计数法
hexfloat浮点值显示为十六进制(C++新特性)
defaultfloat重置浮点数格式为十进制(C++新特性)
unitbuf每次输出操作后都刷新缓冲区
nounitbuf恢复正常的缓冲区刷新方式
skipws输入运算符跳过空白符
noskipws输入运算符不跳过空白符
flush刷新ostream缓冲区
ends插入空字符,然后刷新ostream缓冲区
endl插入换行,然后刷新ostream缓冲区

以上是关于C++ Primer 5th笔记(chap 17 标准库特殊设施)IO库 之操纵符的主要内容,如果未能解决你的问题,请参考以下文章

C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白

C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset类型

C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式

C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值

C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式

C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作