格式化输入与输出
2015-05-02 17:40
176 查看
除了条件状态外,每个iostream对象还维护了一个格式状态来控制IO如何格式化的细节。
标准库定义了一组操纵符(manipulator)来修改流的格式状态。一个操纵衔是一个函数或是一个对象,会影响流的状态,并能用作输入或输出运算符的运算对象。类似输入和输出运算符,操纵符也返回它所处理的流对象,因此我们可以在一条语句中组合操纵符和数据。
很多操纵符改变格式状态
操纵符用于两大类输出控制:控制数值的输出形式以及控制补白的数量和位置。
当操纵符改变流的格式状态时,通常改变后的状态对所有后续IO都有产效。
在输出中指出进制
如果需要打印八进制值或十六进制值,应该使用showbase操纵符。当对流应用showbase操纵符时,会在输出结果中显示进制。
控制浮点数格式
1。以多高精度(多少个数字)打印浮点值。
2。数值是打印为十六进制、定点十进制还是科学记数法形式。
3。对于没有小数部分的浮点值是否打印小数点。
指定打印精确度
默认情况下,精度会控制打印的数字的总数。当打印时,浮点值当前精度舍入而非截断。
我们可以通过调用IO对象的precision成员或使用setprecision操纵符来改变精度。
在执行scientific、fixed或hexfloat后,精度值控制的是小数点后面的数字位数,而默认情况下精度指定的是数字的总位数——既包括小数点之后的数字也包括小数点之前的数字。
输出补白
当按列打印数据时,我们常常需要非常精细地控制数据格式。标准库提供了一些操纵符帮助我们完成所需要的控制:
1。setw指定下一个数字或字符串值的最小空间。
2。left表示左对齐输出。
3。right表示右对齐输出,右对齐是默认格式。
4。internal控制负数的符号的位置,它左对齐符号,右对齐值,用空格填满所有中间空间。
5。setfill允许指定一个字符代替默认的空格来补白输出。
setw类似endl,不改变输出流的内部状态。它只决定下一个输出的大小。
标准库定义了一组操纵符(manipulator)来修改流的格式状态。一个操纵衔是一个函数或是一个对象,会影响流的状态,并能用作输入或输出运算符的运算对象。类似输入和输出运算符,操纵符也返回它所处理的流对象,因此我们可以在一条语句中组合操纵符和数据。
很多操纵符改变格式状态
操纵符用于两大类输出控制:控制数值的输出形式以及控制补白的数量和位置。
当操纵符改变流的格式状态时,通常改变后的状态对所有后续IO都有产效。
在输出中指出进制
如果需要打印八进制值或十六进制值,应该使用showbase操纵符。当对流应用showbase操纵符时,会在输出结果中显示进制。
控制浮点数格式
1。以多高精度(多少个数字)打印浮点值。
2。数值是打印为十六进制、定点十进制还是科学记数法形式。
3。对于没有小数部分的浮点值是否打印小数点。
指定打印精确度
默认情况下,精度会控制打印的数字的总数。当打印时,浮点值当前精度舍入而非截断。
我们可以通过调用IO对象的precision成员或使用setprecision操纵符来改变精度。
在执行scientific、fixed或hexfloat后,精度值控制的是小数点后面的数字位数,而默认情况下精度指定的是数字的总位数——既包括小数点之后的数字也包括小数点之前的数字。
输出补白
当按列打印数据时,我们常常需要非常精细地控制数据格式。标准库提供了一些操纵符帮助我们完成所需要的控制:
1。setw指定下一个数字或字符串值的最小空间。
2。left表示左对齐输出。
3。right表示右对齐输出,右对齐是默认格式。
4。internal控制负数的符号的位置,它左对齐符号,右对齐值,用空格填满所有中间空间。
5。setfill允许指定一个字符代替默认的空格来补白输出。
setw类似endl,不改变输出流的内部状态。它只决定下一个输出的大小。
相关文章推荐
- C Primer Plus 5th 翻译 第四章:字符串和格式化输入/输出(二)
- C++ 格式化输出 及 输入 流
- linux 格式化输出输入函数
- 转载:C++格式化输出输入
- 重学C语言 基本的格式化输入输出
- C语言学习笔记——格式化输入输出
- C语言格式化输入/输出
- C程序设计语言--格式化输入/输出 sprintf fprintf sscanf snprintf
- [C_2]格式化输入输出
- fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化输入输出
- C++格式化输入输出
- C语言基础:字符串和格式化输入/输出
- 字符串和格式化输入/输出
- C语言---程序的一般形式、数据类型、常量变量、运算符、表达式、格式化输入输出
- 格式化输入输出浮点数据的细微问题(C标准:printf,scanf)
- 格式化输入/输出
- C++格式化输入输出
- 【学习ios之路:C语言】数据类型、常量变量、运算符、表达式、格式化输入输出
- C语言格式化输入输出
- 格式转换说明符scanf,printf格式%大全/格式化输入输出