面向对象程序设计及C++ 教学课件 作者 朱立华 朱建 俞琼 第7章_C++的流类.ppt
文本预览下载声明
1 面向对象程序设计及C++ 主讲: 第7章 C++的流类库与输入/输出控制 本章作业 作业本:P246~249页:一,二,三, 五(3) 本章内容提要 C++语言为输入/输出提供的流类 输入/输出格式控制方法 文本文件操作的方法和步骤 二进制文件操作的方法和步骤 本章内容安排 7.1 I/O流的概念及流类库 7.2 键盘输入与屏幕输出 7.3 文件的输入/输出 7.4 本章小结 7.1 I/O流的概念及流类库 C++语言把数据之间的传输操作称作流。每个流都是一种与设备相联系的对象。 C++语言的流具有方向性,根据方向的不同有3种流: 与输入设备相联系的流称为输入流,cin是标准输入流。 与输出设备相联系的流称为输出流,cout 是最常用的标准输出流。另外,输出流中还有cerr和clog这两种标准出错流。 与输入/输出设备相联系的流称为输入/输出流。 7.1 I/O流的概念及流类库 C++语言中数据的输入/输出(I/O)包括3个方面: 对标准输入设备键盘和标准输出设备显示器的输入/输出,简称为标准I/O。 对在外存磁盘上文件的输入/输出,简称为文件I/O。 对内存中指定的字符串存储空间的输入/输出,简称为串I/O。 C++语言中I/O操作的一般流程分为以下3步: (1)首先打开操作,使流和文件发生联系。 (2)建立正确联系后文件才允许数据流入或流出。 (3)输入或输出结束后,使用关闭操作使文件与流断开联系。 7.1.1 streambuf类 streambuf类 用于提供物理设备的接口,它提供缓冲或处理流的通用方法,几乎不需要任何格式。 缓冲区由一字符序列和两个指针组成,这两个指针分别指向字符要被插入或被取出的位置。 streambuf类可以派生出3个类: filebuf类,用文件来保存缓冲区中的字符序列 strstreambuf类,在内存中进行提取和插入操作的缓冲区管理 conbuf类,控制光标、设置颜色、定义活动窗口、清屏、清1行等功能 7.1.2 ios类 ios类 为用户提供使用流类的接口,它们均有一个指向streambuf的指针 它使用streambuf完成检查错误的格式化输入/输出,并支持对streambuf的缓冲区进行输入/输出时的格式化或非格式化转换。 ios作为流库中的一个基类,可以派生出流库中许多的类。 ios类有4个直接派生类: 输入流(istream) 输出流(ostream) 文件流(fstreambase) 串流(strstreambase 7.1.2 ios类 以istream、ostream、fstreambase、strstreambase为基础,组合出多种实用的流: 输入/输出流(iostream) 输入/输出文件流(fstream) 输入/输出串流(strstream) 屏幕输出流(constream) 输入文件流(ifstream) 输出文件流(ofstream) 输入串流(istrstream) 输出串流(ostrstream)等 7.2.1 一般的输入/输出 C++语言中使数据流动的方法 : 使用在标准输入输出头文件stdio.h中声明的库函数 使用在输入输出流类文件iostream.h中定义的流对象cin和cout 使用插入运算符“” cout 输出项; 使用提取运算符“” cin 变量名; 7.2.1 一般的输入/输出 输入/输出类的定义 istream和ostream提供了流库的主要输入/输出 是研究流库的关键 istream类 istream类重载了get函数。 例如:istream istream::get( signed char *,int len,char=\n); 从流中将字符输入到给定的char *,直到遇到分界符、文件结尾或已读完(len-1)个字节为止。 7.2.1 一般的输入/输出 istream类 getline istream istream::getline( signed char *, int,char=\n); istream istream::getline( unsigned char *, int,char=\n); 功能同get,只是分界符也被读入。 ostream类 ostream ostream::put(char); 表示将字符输出到流中。 7.2.1 一般的输入/输出 输入/输出运算符的使用 【例7.1】输出运算符“”的使用。 #include iostream using namespace std; void main() { int k=20; dou
显示全部