您的位置:首页 > 编程语言 > C语言/C++

格式操纵符和格式控制成员函数(C++)

2014-12-02 16:33 218 查看
/***********************************************************************************

C++提供了许多流式操作符。用于执行格式化的输入输出操作

分类 操作符 功能

dec 指定整数以十六进制显示

进制 oct 指定整数以八进制显示

hec 指定整数以十进制显示

stebase(n) 设定以n进制显示,n为8,10,16

left 在域中左对齐,填充字符加到右边

对齐 right 在域中右对齐,填充字符加到左边

internal 数字的符号在域中左对齐,数字在域中右对齐,填充字符加到中间

浮点数表示fixed 以小数的形式显示浮点数,默认小数部分为6位(包括小数点)

scientific 以科学技数形式显示浮点数

空格 skipws 忽略输入流的空格

noskipws 清除skipws,恢复输入流格式

正号 showpos 在正数前显示+号

noshowpos 清除showpos,在正数前不显示+号

小数点 showpoint 不管浮点数小数部分是否为0,总是显示小数点

noshowpoint 清除showpoint,不显示小数部分为0的数的小数

进制基数 showbase 显示进制基数(前缀),八进制去、为0,十六进制为0x或0X

noshowbase 清除showbase,不显示进制基数(前缀)

字符大写 uppercase 十六进制数中字符大写显示,科学技数中e显示成大写E

nouppercase 清除upercase,十六进制数中字符小写显示(默认)

布尔值 boolalpha 分别以true,false字符串形式表示真与假

noboolalpha 清除boollapha,恢复用数值表示bool型数

流刷新 unitbuf 输出操作后刷新流

nounitbuf 清除unitbuf,输出操作不刷新流

换行 endl 换行,并刷新流输出流缓冲区

插空 ends 插入空字符,并刷新输出缓冲区

过滤空 ws 过滤空字符

域宽 setw(n) 设置当前域宽

域填充 setfill(c) 设置域中空白的填充字符,c为字符,默认为空格

浮点数精度setprecision(n)设置浮点数小数部分包括小数点的位数,默认为6

设置格式 setiosflags(n) 设置格式标志

重设格式 resetflags() 重新设置格式为默认格式

***********************************************************************************

使用函数形式的操作符,程序必须包含iomanip头文件

/********************************************************************

格式控制成员函数

域宽 int width(int nw) 设置当前域宽

域填充 char fill(char c) 设置域中空白的填充字符,c为字符,默认为空格

浮点数精度 int precision(int n) 设置浮点数小数部分包括小数点的位数,默认为6

设置格式 long flags(long IFlags)

*********************************************************************/

从函数表中可以看出,除了通过格式操纵控制输出格式外,还可以用相应的流对象的成员函数来控制输出格式

如:width()与setw(),fill(),fill(c)与setfill(c),precision(n)与setprecision(n),flags(flag)与setiosflags(flag)分别对应

格式控制成员函数的使用方法

#include<iomanip>
using namespace std;
int main()
{
double PI =3.1415926535;
int precision;
cout<<fixed;
cout<<PI<<endl;
cout.width(8);
cout.fill('0');
for(precision=0;precision<=9;precision++)
{
cout.precision(precision);
cout<<PI<<endl;
}
cout<<PI<<endl;
cout<<setw(8)<<setfill('0');
for(precision=0;precision<=9;precision++)
{
cout<<setprecision(precision);
cout<<PI<<endl;
}
cout<<PI<<endl;
return 0;
}


注释:

with(n),fill(c)仅对随后的一个对象有作用

precision(n)函数对随后输出的所有对象都起作用,但是for循环中每次都从新确定精度,所以输出的是按照精度由小到大输出的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: