- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 输入与输出流类库
C++的I/O流类,是目前最常用的I/O系统。本章介绍C++输入与输出流类库。通过本章的学习,读者可以了解怎样使用C++面向对象的输入/输出流,能够格式化输入和输出,了解I/O流类的层次结构,了解怎样输入/输出用户自定义类型的对象,能够建立用户自定义的流操作符,能够确定输入/输出操作的成功与失败,能够把输出流连到输入流上。
14.1 I/O流类的结构(略)
14.2 文件流类
C++语言把每个文件都看成一个有序的字节流。每个文件或者以文件结束符结束,或者在特定的字节号处结束(该字节号通常记录在由系统维护和管理的数据结构中)。当打开一个文件时,该文件就和某个流关联起来。系统自动生成cin、cout、cerr、clog对象,流使用这些对象所关联的特定文件或输入/输出设备和程序之间建立通信通道。
要在C++中进行文件处理,就要包含头文件iostream.h和fstream.h。fstream.h头文件包括流类 ifstream(从文件输入)、ofstream(向文件输出)和fstream(从文件输入/输出)的定义。生成这些流类的对象即可打开文件。这些流类分别从istream、ostream和iostream类派生。其层次结构如图14.2。
图14.2 文件流类的继承关系
在C++中,要定义一个文件流类对象,必须规定文件名和打开方式。
类ofstream用于执行文件输出,该类有几个构造函数,其中最有用的是:
ofstream::ofstream(char* pFileName, //指向要打开的文件名字符串
int nMode = ios::out, //打开方式
int nProt = filebuf::openprot); //文件保护方式
nMode参数是打开方式,它的含义见表14.1
表14.1 文件打开选择项
标志 含义 ios::app 将所有输出写入文件尾 ios::ate 打开文件以便输出,并移到文件末尾(通常用于添加数据),数据可以写入文件中的任何地方 ios::in 打开文件以便写入(ifstream默认) ios::out 打开文件以便输出(ofstream默认) ios::trunc 删除文件现有内容(是ios::out的默认操作) ios::nocreate 如果文件不存在,则文件打开失败 ios::noreplace 如果文件存在,则文件打开失败 nProt是文件保护方式,它的选择项见表14.2。
表14.2 文件保护方式选择项
标志 含义 filebuf::openprot 兼容共享方式 filebuf::sh_none 独占,不共享 filebuf::sh_read 允许读共享 file::sh_write 允许写共享
由于C++把文件看作是无结构的字节流,所以为了在文件中记录特定结构的内容,必须给文件加上记录结构。下面的程序演示了班级学生成绩表,学号作为记录关键字,文件按学号顺序建立和维护。假定用户按学号顺序键入记录,程序将把键入的记录保存并写入文件。程序示例如下。
例14.4 文件流操作实例
//演示文件流操作
#include stdafx.h
#includeiostream.h
#includefstream.h
#includestdlib.h
int main()
{
int regNumber;
char name[30];
float grade;
//使用ofstream类的构造函数打开文件
ofstream outGradeFile(C:\\grade.dat,ios::out);
//也可以先创建输出流类对象,再用open操作打开文件
//ofstream outGradeFile;
//outGradeFile.open(C:\\grade.dat,ios::out);
if(!outGradeFile){
cerr文件不能被打开!endl;
exit(1);//函数原形定义在stdlib.h中
}
cout请输入学号,姓名,和成绩,\n
按输入文件结束符结束。\n? ;
while(cinregNumbernamegrade){
outGradeFileregNumber name
grade\n;
cout? ;
}
outGradeFile.close();
ifstream inGradeFile(C:\\grade.dat,ios::in);
//也可以先创建输入流类对象,再用open操作打开文件
//ifstream inGradeFi
您可能关注的文档
- 第12节派生类11.ppt
- 第12节-视窗管理器(WM).pdf
- 第12课时 细胞呼吸与新陈代谢的基本类型.ppt
- 第12章备份恢复导入导出及分离附加.ppt
- 第13节 常用窗口控件.ppt
- 第13节对话框(已修复).pdf
- 第13篇 函数的调用.ppt
- 第13篇 软件质量管理.ppt
- 第13篇 数 据 绑 定.ppt
- 第13篇 运算符重载.ppt
- 2022-2023学年江苏省常州市溧阳市四年级下学期期中数学真题及答案.pdf
- 2022-2023学年江苏盐城建湖县五年级上册语文期末试卷及答案.pdf
- 2021-2022学年河南省卫辉市人教版三年级上册期末考试数学试卷及答案.pdf
- 2022-2023学年浙江杭州萧山区五年级下册语文期中试卷及答案.pdf
- 2022-2023学年江苏省淮安市二年级下学期数学月考试题及答案.pdf
- 2021年山西公务员申论考试真题及答案-乡镇.pdf
- 2021年普通话考试内容题库最新版.pdf
- 2021-2022年江苏苏州太仓市六年级上册期中语文试卷及答案(部编版).pdf
- 2022-2023学年山东省滨州市博兴县四年级下学期期末数学真题及答案.pdf
- 2021年四川内江小升初语文真题及答案.pdf
最近下载
- 2025-2030中国靛蓝染料行业市场发展趋势与前景展望战略研究报告.docx
- DGTJ08-2299-2019 型钢混凝土组合桥梁设计规范.pdf VIP
- 班主任带班育人方略PPT课件.pptx VIP
- 2024年山东省日照市中考生物真题卷(含答案与解析).pdf VIP
- 小学六年级上学期美术《第12课 走向明天》教学课件.pptx VIP
- 科斯定理_反思与拓展_兼论中国农地流转制度改革与选择_罗必良.pdf VIP
- catia电气设计操作手册.pdf VIP
- 八下《卖炭翁》选择题专练-冲刺2024年中考语文古代诗歌课内篇目常考题型专练(统编版六册)(解析版).docx VIP
- 2025年国开电大机考网考-经济学基础-真题(2).docx
- 广东省深圳市南山区2024-2025学年上学期期末教学质量监测七年级英语试题(含答案).pdf VIP
文档评论(0)