1.简单的IO继承层次
Io类型在三个独立的头文件中定义:iostream定义读写控制台窗口的类型;fstream定义读写已命名文件的类型;而sstream定义的类型用于读写存储在内存中的string对象。
头文件 | 类型 |
iostream
| istream从流中读取 ostream写到流中去 iostream对流进行读写 ,从istream和ostream继承而来的 |
fstream
| ifstream从文件流中读取,由istream派生而来 ofstream 写到文件中去,由ostream派生而来 fstream读写文件,由iostream派生而来 |
sstream
| istringstream从string对象中读取,由istream派生而来 ostringstream写到string对象中,由ostream派生而来 stringstream对string对象进行读写,由iostream派生而来 |
2.IO对象不可复制或赋值
由于某些原因,标准库类型不允许做赋值或赋值操作。例如形参或返回值类型不能为流类型。若需要传递活返回io对象,则必须传递或返回指向该对象的指针或引用。对于IO对象的读写会改变它的状态,因此引用必须是非const类型。
3.文件模式
文件模式 | |
in | 打开文件做读操作 |
out | 打开文件做写操作 |
app | 在每次写之前找到文件尾 |
ate | 打开文件后立即将文件定位在文件尾部 |
trunc | 打开文件时清空已存在的文件流 |
binary | 以二进制模式进行IO操作 |
out、trunc和app模式只能用于指定与ofstream或fstream对象关联的文件;in模式只能用于指定与ifstream和fstream对象关联的文件。所有的文件都可以用ate或binary模式打开。