您的位置:首页 > 其它

STL输入和输出流-格式化

2016-01-28 23:14 323 查看
1.1 格式化标记

使用方法:通过成员函数setf()和unsetf(),可接收这些标记做实参。

std::ios::boolalpha

std::ios::hex

std::ios::internal

std::ios::left

std::ios::oct

std::ios::right

std::ios::scientific

std::ios::showbase

std::ios::showpoint

std::ios::showpos

std::ios::skipws

std::ios::stdio

std::ios::unitbuf

std::ios::uppercase

std::ios::dec

std::ios::fixed

1.2 格式操控符

使用方法:使用“<<”将操作符插入到输入流中,也可以使用“>>”运算符插入到输出流中

setbase(int base)

实现基于base输出整数

setfill()

设置作为填充字符的字符

setprecision()

设置浮点数的精度

setw()

设置显示字段的宽度

std::endl

在输出流中插入‘\n’,刷新流

std::ends

插入空字符'\0'

std::dec

按十进制显示整数

std::flush

刷新流

std::hex

按十六进制显示整数

std::oct

按八进制显示整数

std::ws

跳过输入流中的空格

std::fixed

浮点数输出

1.3 格式化函数

使用方法:cout.fill()类似

fill()

返回当前填充字符

fill(int ch)

设置填充字符,返回先前填充字符

precision()

返回当前浮点精度

precision(int p)

设置精度p,返回先前的精度

setf(int m)

设置掩码m的OR表达式中的标记,返回先前的标记

setf(int m1,int m2)

设置m1,关闭掩码m2

unsetf(int m)

关闭掩码m的OR表达式中的标记

width()

放回当前的宽度

idth(int w)

设置宽度w,返回先前的宽度

二、bool类型数据的格式控制

boolpha

设置布尔值显示字符串

noboolpha

设置布尔值显示数字

示例代码:

bool b=0;

cout<<boolalpha<<b<<endl;

cout<<noboolalpha<<b<<endl;

三、字段宽度

3.1 格式化函数形式

int width() const

定义最小宽度

int width(int nw)

设置字段宽度为nw

应用示例:

int a=0;

cout.width(20);

cout<<a;

cout.width();

cout<<a;

3.2 格式操控符形式

setw(int nw)

应用示例:

int a=0;

cout<<setw(20)<<a;

注:上述设置只应用于下一次格式化输出,函数返回当前字段宽度

四、填充字段

4.1 格式化函数

char fill(char cFill)

以字符cFill进行填充

char fill()

以默认填充字符空格填充

应用示例:

int a=0;

cout.width(20);

cout.fill('#');

cout<<a;

4.2 格式操控符

setfill(int nFill)

以字符nFill进行填充

应用示例:

int a=0;

cout<<setw(20)<<setfill('#')<<a;

注:该设置应用与后续所有的格式化输出

五、格式化位置

5.1 格式化标记

设置标记

long setf(long lFlag);

long setf(long lFlag,long lMask);

取消标记

unsetf(long lFlags)

std::ios::left

左对齐

std::ios::right

右对齐

std::ios::internal

符号靠左对齐,数值靠右对齐

std::ios::none

默认靠右对齐

应用示例:

int a=0;

cout.setf(ios_base::left);

cout<<setw(20)<<a<<a;

六、正记号

6.1 格式化标记

std::ios::showpos

强制输出整数前的正记号

std::ios::noshowpos

强制忽略正数前的正记号

应用示例:

int a=0;

cout.setf(ios_base::showpos);

cout<<a;

七、大写字符

7.1 格式化标记

std::ios::uppercase

强制大写

std::ios::nouppercase

强制小写

应用示例:

string str;

cin.setf(ios_base::showpos||ios_base::uppercase);

cin>>uppercase>>str;

cout<<str;

八、数值进制

8.1 格式化标记

std::ios::oct

以八进制进行读写

std::ios::dec

以十进制进行读写

std::ios::hex

以十六进制进行读写

std::ios::none

以十进制输出,默认

std::ios::showbase

显示数值进制

std::ios::noshowbase

不显示数值进制

应用示例:

int i=15;

cout<<hex<<i<<endl;

九、浮点数输出

ios::fixed

使用小数计数法

ios::scientific

使用科学计数发

ios::none

使用两者中最合适的

应用示例:

double d=3.1415;

cout.setf(ios_base::scientific);

cout<<d<<endl;

cout<<scientific<<d<<endl;

十、一般性格式定义

ios::skipws

被调用之后读取数值时,会自动跳过起始空格

ios::unibuf

控制输出缓冲区,若设置不使用缓冲装置,每次输出均清空缓冲区

应用示例:

double d=3.1415;

cout.setf(ios_base::unitbuf);

cout<<d<<endl; cout<<unitbuf<<d<<endl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: