输入与输出流2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:VS2015与 C++

撰写时间:2019/07/16

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

设置标志字:列举部分。

状态标志

含义

输入/输出

skipws

0X0001

跳过输入空白符

I

left

0X0002

左对齐输出

O

right

0X0004

右对齐输出

O

internal

0X0008

在符号位和基指示符后填入字符

O

dec

0X0010

转换基制为十进制

I/O

oct

0X0020

转换基制为八进制

I/O

hex

0X0040

转换基制为十六进制

I/O

 

设置标志位:

函数

功能

long flags(long lFlags);

long flags()const;

用参数lFlags更新标志字

返回标志字

long setf(long lFlags);

long setf(long lFlags,long lMask);

设置lFlags指定的标志位

将lMask指定的位清0,然后设置lFlags指定位

long unsetf(long lMask);

将参数lMask指定的标志位清0

int width(int nw);

设置下一个输出项显示的宽度为nw

char fill(char cFill);

空白位置以字符参数cFill填充

int precision(int np);

用参数np设置数据显示精度

 

例子:

void main(){

char *strchar = "HelloWorld";

cout.setf(ios::right);     // 左对齐

cout.width(5);         //设置下一个输出向显示宽度为5

cout << 123 << endl;

}

 

格式控制符:控制符是istream和ostream类定义了一批函数,作为重新插入运算符<<或提取运算符>>的右操作数控制I/O格式。

iostream几个常用的控制符:

控制符

功能

输入/输出

endl

输出一个新行符,并清空流

O

ends

输出一个结束符,并清空流

O

flush

清空流缓冲区

O

dec

用十进制表示法输入或输出数值

I/O

hex

用十六进制表示输入或输出数值

I/O

oct

用八进制表示法输入或输出数值

I/O

ws

提取空白字符

I

   

以十进制输入:cin >> dec >> a;

 

格式控制符:    iomanip.h 头文件中

控制符

功能

输入/输出

resetiosflags(ios::lFlags)

清除lFlags指定的标志位

I/O

setiosflags(ios::lFlags)

设置lFlags指定的标志位

I/O

setbase(int base)

设置基数,base = 8,10,16

I/O

setfill(char c)

设置填充符c

O

setprecision(int n)

设置浮点数输出精度

O

setw(int n)

设置输出宽度

O

 

串流:

串流类是ios中的派生类。

C++的串流对象可以连接string对象或字符串。

串流提取数据时对字符串按变量类型解释;插入数据时把类型数据转换成字符串。

串流I/O具有格式化功能。

 

从输入串流对象提取数据:

char *strchar = "HelloWorld this is 36 * 0.5";

string a, b, c, d;

    double e, f;

    istringstream input(strchar);  // 这个 #include <sstream>

    input >> a >> b >> c >> e >> d >> f;

cout << a << b << c << e << d << f << endl;

 

向输出串流对象插入数据:

char buf[20];

ostrstream Output( buf, sizeof(buf) ) ;   

double x, y ;

cout << "输入 x : " ; 

 cin >> x ;

 cout << "输入 y : " ; 

 cin >> y ;

//将x * y 插入到 buf 中去

 Output << x << " * " << y << " = " << x*y << endl ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值