输入流/输出流
总括:c++程序的输入、输出操作,是指由I/o流类库提供的对象之间的数据交互服务。
1.1流类于流对象
I/o流提供了低级和高级的输入/输出功能。低级I/o是无格式的数据传输,对字节序列不进行解释,用于实现高速度大容量的数据传输。高级I/o是格式化的数据传输,把字节序列解释为各种预定义的或用户定义的类型数据。
1.1.1流类库
C++的流类库是用继承方法建立起来的一个输入/输出类库,它主要由两个平行的基类:streambuf类和ios类。
这是两个非常低级的类,它们是所有流类的基类。还有一个独立的类iostream_init,它主要用于流类的初始化操作。
streambuf类主要负责缓冲区的处理
缓冲区由一个字节序列和两个指针组成(输入缓冲区指针和输出缓冲区指针),这两个指针指向缓冲区当前插入或提取的位置。
filebuf类提供文件缓冲区的管理;
strstreambuf类使用字符串保存字节序列,提供在内存中提取和插入操作的缓冲区管理;stdiobuf类提供标准I/o文件的缓冲区管理。
ios类提供流的高级操作。ios类是抽象基类,提供输入/输出所需的公共操作。ios类包含一个指向streambuf类的指针,提供格式化标志用于格式化I/o处理,对I/o的错误进行处理,设置文件模式以及提供相关流的方法。
ios派生了两个类:输入流类istream和输出流类ostream。
istream类提供了流的大部分输入操作,主要对streambuf类进行插入时格式化和非格式化的转换,并对所有系统预定义的输入流重载提取运算符“>>”。
它有三个派生类:
- ifstream时文件输入流类,用于对文件的提取操作。
- istrstream是字符串输入流类,用于对字符串的提取操作。
- istream_withassign是重载了赋值运算符的输入流类,标准输入cin是该类对象
ostream类及她的派生类提供了流的各种格式化、非格式化操作,对所有系统预定义的输出流重载流插入运算符“<<”。它由一下三个派生类。
- ofstream是文件输出流类。
- ostream是串输出流类。
- ostream_withassign是重载了赋值运算符的输出流类,标准输出流cout、cerr、clog是该类对象。
由istream和ostream类派生了输出/输出流类iostream,综合了流的输入/输出操作。它有三个派生类:文件输入/输出操作fstream、串输入/输出流类strstream和标准输出/冲出流类stdiostream。
日记
今日温度15至19度,小雨,。晚上的时候在群上看到有网上试题代刷附上答案的差事,心里还以为捡了便宜,没想到一看,20块钱想卖我2h时间甚至更多。无语了,真的是那人当牛马。这种活打死都不接,更坚定了自己不做这种力气活。资源和知识的力量比我的肌肉力量要强大的多。现在有个想法,努力做二手书籍的生意。目前先做好校园跑生意,用这样的方式完成原始积累。还有最近股市表现不好,四个月只有3%的收益,还能超99以上的基民,有点好笑。