C++格式化输出流

来源:互联网 发布:暗黑破坏神3画面优化 编辑:程序博客网 时间:2024/05/21 19:49

有时ACM或者程序需要在输入输出时有一些特定格式,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符)

 - setfill(ch)                          设置填充字符ch,ch可以是字符常量或字符变量 - setprecision(n)                      将浮点精度设置为n - setw(n)                              读或写值宽度为n个字符 - setbase(int base)                    将整数输出为base进制        当base数值为        8           八进制        10          十进制        16          十六进制        other       默认输出 - setiosflags                          设置数据格式为…… - resetiosflags                            重置数据格式 - setiosflags (ios_base::fmtflags mask);

setiosflags能添加的fmtflags有如下

 - boolalpha        将truefalse输出为字符串 - showbase         对整型值输出表示进制的前缀 - showpoint        对浮点值总是显示小数点 - showpos          对非负数显示+ - skipws           输入运算符跳过空白符 - unitbuf          每次输出操作后都刷新缓冲区 - uppercase        转换为大写输出英文字符 - dec              整型值显示为十进制 - hex              整型值显示为十六进制 - oct              整型值显示为八进制 - fixed            设置浮点数以固定的小数位数显示 - scientific       浮点值显示为科学技术法 - internal         在符号和值之间添加填充字符 - left             在值的右侧添加填充字符 - right            在值的左侧添加填充字符

需要注意的是:以上函数包含在头文件iomanip。(顺便说一下从Linux GCC 4.8.0开始加入头文件bits/stdc++.h,虽然不是标准头文件,但这个头文件着实顺手,平时用的头文件都在里面)

定义在iostream中的操纵符

 - boolalpha               将truefalse输出为字符串 - *noboolalpha            将truefalse输出为10 - showbase                对整型值输出表示进制的前缀 - *noshowbase             不生成表示进制的前缀 - showpoint               对浮点值总是显示小数点 - *noshowpoint            只有当浮点值包含小数部分时才显示小数点 - showpos                 对非负数显示+ - *noshowpos              对非负数不显示+ - uppercase               在十六进制值中打印0X,在科学记数法中打印E - *nouppercase            在十六进制值中打印0x,在科学记数法中打印e - *dec                    整型值显示为十进制 - hex                     整型值显示为十六进制 - oct                     整型值显示为十进制 - left                    在值的右侧添加填充字符 - right                   在值的左侧添加填充字符 - internal                在符号和值之间添加填充字符 - fixed                   浮点值显示为定点十进制 - scientific              浮点值显示为科学技术法 - hexfloat                浮点值显示为十六进制 - defaultfloat            重置浮点数格式为十进制 - unitbuf                 每次输出操作后都刷新缓冲区 - *nounitbuf              恢复正常的缓冲区刷新方式 - *skipws                 输入运算符跳过空白符 - noskipws                输入运算符不跳过空白符 - flush                   刷新ostream缓冲区 - ends                    插入空字符,然后刷新ostream缓冲区 - endl                    插入换行,然后刷新ostream缓冲区*表示为默认流状态
0 0
原创粉丝点击