第14章 输入与输出流类库

第14章 输入与输出流类库

ID:20416876

大小:100.50 KB

页数:16页

时间:2018-10-12

第14章 输入与输出流类库_第1页
第14章 输入与输出流类库_第2页
第14章 输入与输出流类库_第3页
第14章 输入与输出流类库_第4页
第14章 输入与输出流类库_第5页
资源描述:

《第14章 输入与输出流类库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第14章输入与输出流类库C++的I/O流类,是目前最常用的I/O系统。本章介绍C++输入与输出流类库。通过本章的学习,读者可以了解怎样使用C++面向对象的输入/输出流,能够格式化输入和输出,了解I/O流类的层次结构,了解怎样输入/输出用户自定义类型的对象,能够建立用户自定义的流操作符,能够确定输入/输出操作的成功与失败,能够把输出流连到输入流上。14.1I/O流类的结构(略)14.2文件流类C++语言把每个文件都看成一个有序的字节流。每个文件或者以文件结束符结束,或者在特定的字节号处结束(该字节号通常记录在由系统

2、维护和管理的数据结构中)。当打开一个文件时,该文件就和某个流关联起来。系统自动生成cin、cout、cerr、clog对象,流使用这些对象所关联的特定文件或输入/输出设备和程序之间建立通信通道。要在C++中进行文件处理,就要包含头文件头文件包括流类ifstream(从文件输入)、ofstream(向文件输出)和fstream(从文件输入/输出)的定义。生成这些流类的对象即可打开文件。这些流类分别从istream、ostream和iostrea

3、m类派生。其层次结构如图14.2。图14.2文件流类的继承关系在C++中,要定义一个文件流类对象,必须规定文件名和打开方式。类ofstream用于执行文件输出,该类有几个构造函数,其中最有用的是:ofstream::ofstream(char*pFileName,//指向要打开的文件名字符串intnMode=ios::out,//打开方式intnProt=filebuf::openprot);//文件保护方式nMode参数是打开方式,它的含义见表14.1表14.1文件打开选择项标志含义ios::app将所有输出写

4、入文件尾ios::ate打开文件以便输出,并移到文件末尾(通常用于添加数据),数据可以写入文件中的任何地方16ios::in打开文件以便写入(ifstream默认)ios::out打开文件以便输出(ofstream默认)ios::trunc删除文件现有内容(是ios::out的默认操作)ios::nocreate如果文件不存在,则文件打开失败ios::noreplace如果文件存在,则文件打开失败nProt是文件保护方式,它的选择项见表14.2。表14.2文件保护方式选择项标志含义filebuf::openpro

5、t兼容共享方式filebuf::sh_none独占,不共享filebuf::sh_read允许读共享file::sh_write允许写共享由于C++把文件看作是无结构的字节流,所以为了在文件中记录特定结构的内容,必须给文件加上记录结构。下面的程序演示了班级学生成绩表,学号作为记录关键字,文件按学号顺序建立和维护。假定用户按学号顺序键入记录,程序将把键入的记录保存并写入文件。程序示例如下。例14.4文件流操作实例//演示文件流操作#include"stdafx.h"#include#incl

6、ude#includeintmain(){intregNumber;charname[30];floatgrade;//使用ofstream类的构造函数打开文件ofstreamoutGradeFile("C:\grade.dat",ios::out);//也可以先创建输出流类对象,再用open操作打开文件//ofstreamoutGradeFile;//outGradeFile.open("C:\grade.dat",ios::out);if(!outGradeFil

7、e){16cerr<<"文件不能被打开!"<>regNumber>>name>>grade){outGradeFile<

8、;//也可以先创建输入流类对象,再用open操作打开文件//ifstreaminGradeFile;//inGradeFile.open("C:\grade.dat",ios::in);cout<<"?";while(inGradeFile>>regNumber>>name>>grade){cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。