c++ std库---IO

一、主要内容:

常用的3种IO类:基础的istream、ostream和继承于它们的文件流(i/ofstream)和string流(istringstream等)的通用功能、特有功能。每种流都有它们对应的宽字符版本(前加w)

==头文件iostream、fstream、sstream

二、通用功能:

1、流的状态标识

为了提供判断IO流当前状态的工具,c++定义了一种叫iostate的类型。

==如何使用:设IO类型为strm,则通过strm::iostate即可访问strm流的状态

==iostate集合的位的意义:共四个状态位:badbit对应流崩溃、failbit对应操作失败、eofbit对应EOF、goodbit对应无错误

==常用方法(函数):4个位都有其对应的判断方法,返回一个bool值,此外clear()将所有位(或特定位,要使用有参数版本)复位,setstate将根据给定参数置位,rdstate返回调用此方法的流的状态

2、管理缓冲:

缓冲是系统对IO的一种优化策略,输入、输出信息时,先将信息存储在缓冲中,默认情况下当缓冲区满再通过系统调用写入/输出到设备。

1)通过操作符管理缓冲:通过<<运算输出:一次性操作:endl、flush、ends。持续性操作:unitbuf、nounitbuf

2)通过关联输入输出流管理缓冲:可以将任意流关联到一个输出流类型,调用流成员函数tie()即可

三、fstream定义的文件流:

定义了基本文件流:ifstream,ofstream,fstream,它们同样继承于istream和ostream以及iostream

1.特有操作:

设f是一个流对象

利用构造函数,初始化时可通过:f(s)打开名为s的文件,s=string 类型或char *,还可以添加第二个参数mode,指定打开方式(in,out,app,ate,trunc,binary)

close()关闭与流绑定的文件,此函数没有参数

is_open()判断关联文件是否打开,返回bool

四、string流

定义了基本string流:istringstream,ostringstream,stringstream,istringstream通过绑定一个string,将自己变成一个输入源,可以将string内容输入至其他地方,ostringstream保存string对它的输出。

1.特有操作:

设st是一个流对象

利用构造函数,初始化时可通过:sts)保存string类型s的一个拷贝

st.str()返回保存的string

st.str(s)将s拷贝到流中

你可能感兴趣的:(c++ std库---IO)