Cpp Primer<<学习IO标准库--面向对象的标准库_4
2015-06-04 21:47
429 查看
IO标准库提供的工具
istream(输入流)类型,提供输入操作。ostream(输出流)类型,提供输出操作。
cin(see-in):读入标准输入的istream对象。
cout(see-out):写到标准输出的ostream对象。
cerr(see-err):输出标准错误的ostream对象。cerr常用语程序错误信息。
>>操作符,用于从istream对象中读入输入。
<<操作符,用于把输出写到ostream对象中。
getline函数,需要分别去istream类型和string类型的两个引用形参,其功能是从istream对象读取一个的单词,然后写入string对象中。
1. 面向对象的标准库
如果两种类型存在继承关系,则可以说一个类”继承”了其父类的行为——接口。C++中提及的父类成为基类(base class),而继承而来的类则成为派生类(derived class)。
IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中string对象。fstream和sstream里所定义的每种类型都是从iostream头文件中定义的相关类型派生而来。
控制窗口流头文件iostream、磁盘文件流头文件fstream、字符串流头文件sstream。
函数形参有基类引用时,可以通过其派生类对象来进行调用。
三种类型流:控制台I/O流、字符串流和磁盘文件流,简称三刀流。
1.1国际字符的支持
以上所描述的流类的读写是由char类型组成的流。对wchar_t类型,标准库定义I/O输入输出读写宽字符对象为wcout、wcin、wcerr。基于流的wchar_t类型的类和对象在iostream中定义,宽字符文件流类型在fstream中定义,而宽字符stringstream则在sstream头文件中定义。
1.2 IO对象不可复制或赋值
[code]ofstream out1,out2; out1 = out2; // error:cannot assign stream objects // print function: parameter is copied ofstream print(ofstream); out2 = print(out2); // error cannot copy stream objects
只有支持复制的元素类型可以存储在vector(类模板)或其他容器类型里。
形参或函数的形参或返回类型也不能为流类型。如有需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用:
[code]ofstream &print(ofstream&); // ok:takes a reference,oncopy while(print(out2)) { /* . . . */ } // ok:pass reference to out2
对IO对象进行读写会改变它的状态,因此引用必须是非const的。
相关文章推荐
- C语言函数使用
- c语言一起学习之建立头文件(二)
- 《C++ primer》第五版 第三章 笔记
- C++和java多态的区别
- chapter10test8
- C++中 #ifdef 和#endif的作用
- 浅谈c++多态性
- hash算法在查找、比较中的应用
- 数字在排序数组中出现的次数
- 黑马程序员——C语言基础——文件读写实战
- 我所理解的设计模式(C++实现)——适配器模式(Adapter Pattern)
- C++预处理命令
- C++类与对象详解
- 纪念逝去的岁月——C++实现一个队列(使用类模板)
- VC++中debug跟release编译模式的区别总结
- 【c++类的构造函数具体解释 】
- VC++某些笔记
- IOS之C语言打印直方图
- C语言中关于文件操作的一些用法
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法