c++prime IO库总结

IO库知识点总结

IO类分别定义在三个头文件中,分别是:
1、iostream :定义基于读写流的基本类型
2、fstream :定义读写文件的类型
3、sstream :定义了内存string对象的类型
读写一个io对象会改变其状态,因此传递和返回的引用不能是const

条件状态函数:

badbit:表示流已经崩溃;
eofbit:表示流已经到达文件结束位置;
failbit:表示IO操作失败;
goodbit:表示流未处于错误状态,此值保证为0;
s.eof():如果s的eofbit置位,则返回true;
s.fail():如果s的流failbit或者badbit置位则返回true;
s.bad():如果s的badbit置位,则返回true;
s.good():如果s处于有效状态,则返回true;
s.clear():将s的所有状态位复位,流的状态设置为有效。返回void;
s.clear(flags):根据给定的flags(strm::iostate)标志位,将对应条件的状态标志位复位;
s.setstate(flags):根据给定的flags标志位,将s中对应状态位置位。
s.rdstate():返回流s的当前条件状态,返回值类型为strm::iostate。

badbit表示系统级错误,如不可恢复的读写错误,一旦badbit被置位,流就没办法用了
文件结束后,eofbit和failbit都会被置位,如果badbit、failbit和eofbit任一个被置位,则检测流状态的条件会失败

管理缓冲:
endl:表示换行,然后刷新缓冲区
flush:表示刷新缓冲区,不附加任何字符
ends:表示输出一个空字符,然后刷新缓冲区
unitbuf:表示每次输出操作都刷新缓冲区
nounitbuf:表示回到正常的缓冲方式
程序崩溃,输出缓冲区不会被刷新

文件输入输出:
fstream fstrm;//创建一个未绑定的流
fstream fstrm(s);//创建一个fstrm,并打开s的文件
fstream fstrm(s,mode)//打开s文件,指定mode打开文件方式
fstrm.open(s);//打开s文件,并和fstrm绑定。默认mode取决于fstrm的类型,并返回一个void。
fstrm.close();//关闭与strm绑定的文件,返回void。
fstrm.is_open();//返回一个bool值,判断文件是否打开且尚未关闭。

文件模式:

in以读模式 打开
out以写模式打开
app每次写之前均定位到文件结尾
ate打开文件后立即定位到文件末尾
trunc截断文件
binary以一个二进制方式进行IO

只可以对ofstream或者fstream使用out
只可以对ifstream或者fstream使用in
只有当out被设定时,才可以设定trunc
只有未设定trunc,就可以设定app
默认情形,即使未设定trunc,以out模式打开文件也会被截断,因此保留out模式打开的内容,需要同时指定app模式或者in模式
ate和binary适用任何类型的文件流对象

string流:

sstream strm;strm是一个未绑定的stringstream对象
sstream strm(s);strm是一个sstream对象,保存了string s的一个拷贝
strm.str();返回strm的string拷贝
strm.str(s);将string s拷贝到strm中,返回void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值