标准输出设备

向文本文件输出

标准输出设备显示器被系统看作文本文件,所以我们以向标准设备输出为例,介绍文本文件输出格式控制。

插入运算符

  • 插入(<<)运算符
    • 为所有标准C++数据类型预先设计的,用于传送字节到一个输出流对象。

操纵符(manipulator)

  • 插入运算符与操纵符一起工作
    • 控制输出格式。
  • 很多操纵符都定义在
    • ios_base类中(如hex())、头文件(如setprecision())。
  • 控制输出宽度
    • 在流中放入setw操纵符或调用width成员函数为每个项指定输出宽度。
  • setw和width仅影响紧随其后的输出项,但其它流格式操纵符保持有效直到发生改变。
  • dec、oct和hex操纵符设置输入和输出的默认进制。

setiosflags操纵符

  • 这个程序中,通过使用带参数的setiosflags操纵符来设置左对齐,setiosflags定义在头文件iomanip中。
  • 参数iosbase::left是iosbase的静态常量,因此引用时必须包括ios_base::前缀。
  • 这里需要用resetiosflags操纵符关闭左对齐标志。setiosflags不同于width和setw,它的影响是持久的,直到用resetiosflags重新恢复默认值时为止 。
  • setiosflags的参数是该流的格式标志值,可用按位或(|)运算符进行组合

setiosflags的参数(流的格式标识)

  • ios_base::skipws 在输入中跳过空白 。
  • ios_base::left 左对齐值,用填充字符填充右边。
  • ios_base::right 右对齐值,用填充字符填充左边(默认对齐方式)。
  • ios_base::internal 在规定的宽度内,指定前缀符号之后,数值之前,插入指定的填充字符。
  • ios_base::dec 以十进制形式格式化数值(默认进制)。
  • ios_base::oct 以八进制形式格式化数值 。
  • ios_base::hex 以十六进制形式格式化数值。
  • ios_base::showbase 插入前缀符号以表明整数的数制。
  • ios_base::showpoint 对浮点数值显示小数点和尾部的0 。
  • ios_base::uppercase 对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E 。
  • ios_base::showpos 对于非负数显示正号(“+”)。
  • ios_base::scientific 以科学格式显示浮点数值。
  • ios_base::fixed 以定点格式显示浮点数值(没有指数部分) 。
  • ios_base::unitbuf 在每次插入之后转储并清除缓冲区内容。

精度

    • 浮点数输出精度的默认值是6,例如:3466.98。
    • 要改变精度:setprecision操纵符(定义在头文件iomanip中)。
    • 如果不指定fixed或scientific,精度值表示有效数字位数。
    • 如果设置了iosbase::fixed或iosbase::scientific精度值表示小数点之后的位数,若没有只是表示正常输出几位数字
posted @ 2020-01-24 21:18  深海的石头  阅读(363)  评论(0编辑  收藏  举报