




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象程序设计,输入输出流,第7章,本章内容,7.1C+的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流,目标,理解C+输入输出流及相关概念()理解标准输出流对象的使用及输出格式控制()理解标准输入流对象及输入流的成员函数的使用()理解文件概念、文件流与文件流对象的相关知识()理解二进制和文本文件的操作(),第7章输入输出流,7.1C+的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流,7.1C+的输入和输出,(一)输入输出的含义(二)C+的I/0对C的发展(三)C+的输入输出流,7.1C+的输入和输出,(一)输入输出的含义程序的输入是指从输入文件将数据传送给程序,输出是指将数据传送给输出文件。如:从键盘输入数据给程序、将程序运行结果显示在显示器上等。从操作系统的角度来看,每一个与主机相连的输入输出设备都被看作文件。文件是输入输出操作的对象。C+系统提供庞大的I/O类库,调用不同的类去实现不同的功能.,7.1C+的输入和输出,(一)输入输出的含义C+的输入与输出包括以下3方面的内容:(1)对系统指定的标准设备的输入和输出,称为标准的输入输出,简称标准I/0。(2)以外存磁盘文件为对象进行输入和输出,称为文件的输入输出,简称文件I/O。(3)对内存中指定的空间进行输入和输出,称为字符串输出输出,简称串I/O。,7.1C+的输入和输出,(二)C+的I/O对C的发展类型安全C+为了兼容C,保留了用printf和scanf进行输出输入的方法。C+在输入输出中添加了,编译系统对数据类型的严格检查。类型不正确的数据不能通过编译。可扩展性C+的I/O除了可以输入输出标准类型的数据以外,还可以输入输出用户自定义数据类型。,7.1C+的输入和输出,(三)C+的输入输出流C+的输入输出流简介“流”就是数据流,是字符序列在主机与外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,并管理数据的流动。具有方向性。,内存,输出缓冲区,输入缓冲区,输出设备,形成cin流,数据,形成cout流,7.1C+的输入和输出,(三)C+的输入输出流C+中,输入输出流被定义为类,称为流类,用流类定义的对象称为流对象(cin,cout)。C+提供的用于输入输出的iostream类库存。(查看P222表7.1)C+的流库(streamlibrary)是用继承方法建立起来的一个输入输出类库。(查看P223图7.3),7.1C+的输入和输出,(三)C+的输入输出流与iostream类库有关的头文件iostream:包含使用标准输入输出流所需的所有声明和定义。它包含四个标准流对象:cin、cout、cerr、clog,提供了无格式和格式化的I/O功能。fstream:包含有关文件处理的信息,提供建立文件和读写文件等各种操作的接口。strstream:用于字符串流的i/o。stdiostream:用于混合使用C和C+的I/O机制。iomanip:在使用格式化I/O时包含此头文件。,7.1C+的输入和输出,(三)C+的输入输出流在iostream头文件中定义的流对象,第7章输入输出流,7.1C+的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流,7.4文件操作与文件流,(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作,7.4文件操作与文件流,(一)文件的概念文件:指存储在外部介质上的数据集合,操作系统以文件为单位对数据进行管理。根据存储格式可以把文件分为两种类型:ASCII码文件(文本文件)内部格式文件(二进制文件)。如:100文本:001100010011000000110000-3B二进制:01100100-1B,7.4文件操作与文件流,(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作,7.4文件操作与文件流,(二)文件流类和文件流对象文件流:以外存文件为输入输出对象的数据流。文件流与文件是有区别的。文件流本身不是文件,只是以文件为输入输出对象的流。文件流不是若干个文件组成的流。C+对文件的读写操作包含3个基本步骤:建立一个文件流对象把文件流对象与实际文件相关联,称为打开文件;对文件流进行读/写操作;关闭文件。,7.4文件操作与文件流,(二)文件流类和文件流对象C+的I/O类库中定义了三种文件类,专门用于文件操作。ifstream类:从istream类派生,用来支持磁盘文件的输入。ofstream类:从ostream类派生,用来支持磁盘文件的输出。fstream类:从iostream类派生,用来支持磁盘文件的输入和输出。,7.4文件操作与文件流,(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作,7.4文件操作与文件流,(三)文件的打开与关闭打开文件打开文件操作包括建立文件流对象,与外部文件关联,指定文件的打开方式。打开文件有两种方式:方式一:先建立流对象,后调用open连接外部文件。流类对象名;对象名.open(文件名,打开方式);方式二:调用流类带参数的构造函数,建立对象的同时连接外部文件。流类对象名(文件名,打开方式);,7.4文件操作与文件流,(三)文件的打开与关闭打开文件方式一:流类对象名;对象名.open(文件名,打开方式);方式二:流类对象名(文件名,打开方式);“流类”是流类库中定义的文件流类,ifstream用于读方式打开文件,ofstream用于写方式打开文件,而fstream用于读/写方式打开文件。“打开方式”是ios定义的标识常量,表示文件的访问方式(查看表7-7)。,用户定义标识符,外部文件名,7.4文件操作与文件流,(三)文件的打开与关闭打开文件方式一:流类对象名;对象名.open(文件名,打开方式);方式二:流类对象名(文件名,打开方式);ifstreaminfile;infile.open(“d:file1.txt”,ios:in);fstreamrwfile(“d:file3.txt”,ios:in|ios:out);,7.4文件操作与文件流,(三)文件的打开与关闭打开文件说明事项:新版本C+的I/O类库中不提供ios:nocreate和ios:noreplace。每个打开的文件都有一个文件指针,它的初始位置由I/O方式决定。可以用“|”位或运算符对输入输出方式进行组合。如果打开失败,open函数返回0值。可据此测试打开是否成功。,7.4文件操作与文件流,(三)文件的打开与关闭关闭文件当一个文件读写操作完毕后,应及时关闭文件。关闭文件操作主要完成将缓冲区数据完整地写入文件,添加文件结束标志,切断流对象和外部文件的连接等任务。关闭文件方式:对象名.close();例:,7.4文件操作与文件流,#include#includeusingnamespacestd;intmain()ofstreamoutfile(d:f1.txt,ios:out);if(!outfile)cout打开文件错误!”输入输出标准类型的数据。用文件流中的put,get,getline等成员函数进行字符的输入输出。例:整形数组含3个元素,将他们存到文件中,并取出来,在屏幕上显示。,7.4文件操作与文件流,(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作,7.4文件操作与文件流,(五)对二进制文件的操作二进制文件:将内存中数据存储形式不加转换地传送到磁盘文件中,即以二进制形式存储信息。打开二进制文件时,必须要指定ios:binary。用成员函数read和write读写二进制文件istream,指向内存中一段存储空间,读写的字节数,7.4文件操作与文件流,(五)对二进制文件的操作例:将三个学生的信息存到二进制文件中,学生定义如下:structstudentcharname20;intnum;intage;charsex;,7.4文件操作与文件流,(五)对二进制文件的操作与文件指针相关的流成员函数(P254表7.7)文件指针相对移动函数移动读指针:seekg();移动写指针:seekp();,练习,例7.13从键盘中读入一行字符,将其中的字母字符依次存入f2.dat中,再将文件中的内容读入程序,将小写字母改成大写字母,存入f3.dat中。思考:何种文件形式?阅读分析例7.16,实验十一文件操作,实验内容:课后第5题实验时间:周五三单元实验报告:十六周周二一单元上交,小结,(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作,7.4文件操作与文件流,(五)对二进制文件的操作与文件指针相关的流成员函数参照位置:ios:cur当前位置ios:end结尾ios:beg开头例:infile.seekg(100)infile.seekg(-50,ios:cur)Outfile.seekg(10,ios:beg),第7章输入输出流,7.1C+的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流,7.2标准输出流,(一)cout、cerr、clog流对象cout它是ostream流类的对象,表示流向显示器的数据,用流插入运算符“”顺序加入。用“cout”可以直接输出基本类型数据。例:inta,b;coutab;如果想输出用户定义数据类型,必须先进行运算符的重载。例:定义complex类,实现该对象的输出。complexc1;coutc1;ostream,7.2标准输出流,(一)cout、cerr、clog流对象cerr:是标准出错流,被指定为与显示器关联,它的作用是向标准出错设备输出有关出错信息。例:(查看P227例7.1)clog:是标准出错流,作用也是在终端显示器上显示出错信息。cerr与clog的区别:cerr不经过缓冲区,直接向显示器输出有关信息。clog中的信息存放在缓冲区中,缓冲区满或遇到endl时才向显示器输出。,7.2标准输出流,(二)格式输出使用控制符控制输出格式(查看P228表7.3)coutdeca”从流中提取数据。流提取符“”从流中提取数据时通常跳过输入流中的空格、Tab键、换行符等空白字符。只有输入完数据再按回车健后,该行数据才被送入键盘缓冲区,形成输入流,流提取符“”才能从中提取数据。,(一)cin流(补充),Cin有自己状态值,错误时为0例Inta;cina;/a=ssdlk处理:cin.clear();/清除错误标志cin.sync();/清空缓存,7.3标准输入流,(二)用于字符输入的流成员函数用get函数读入一个字符。get函数有三种形式:cin.get()cin.get(字符变量)作用:将读入字符赋值给指定的字符变量。cin.get(字符数组,字符个数n,终止字符)作用:从输入流中读取n-1个字符,赋给指定的字符数组。如果在读取n-1个字符前遇到终止字符,则提前结束读取。,7.3标准输入流,(二)用于字符输入的流成员函数用get函数的例题:,/第一种形式:#includeusingnamespacestd;intmain()charc;coutenterasentence:endl;while(c=cin.get()!=EOF)/输入ctrl+z结束cout.put(c);return0;,7.3标准输入流,(二)用于字符输入的流成员函数用get函数的例题:,/第二种形式:#includeusingnamespacestd;intmain()charc;coutenterasentence:endl;while(cin.get(c)/输入ctrl+z结束cout.put(c);return0;,7.3标准输入流,(二)用于字符输入的流成员函数用get函数的例题:,/第三种形式:#includeusingnamespacestd;intmain()charc20;coutenterasentence:endl;cin.get(c,10,n);/输入回车键提前结束读取coutcendl;return0;,7.3标准输入流,(二)用于字符输入的流成员函数用getline函数读入一行字符。getline函数形式:cin.getline(字符数组,字符个数n,终止字符)作用:从输入流中读取n-1个字符,赋给指定的字符数组。如果在读取n-1个字符前遇到终止字符,则提前结束读取。例:(查看P237例7.7),7.3标准输入流
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数据标注员标注团队协作考核题(含答案与解析)
- 工程地质工程施工钻探工内部技能考核试卷及答案
- 木地板表面装饰工理论知识考核试卷及答案
- 中式面点师岗位操作规程考核试卷及答案
- 聚酯增粘装置操作工标准化作业考核试卷及答案
- 嗅辨员技能操作考核试卷及答案
- 眼耳鼻喉护理单元理论试题(附答案)
- 塑料模具工协作考核试卷及答案
- 检验科医疗核心制度解读相关知识考核试题(附答案)
- 饮料调配工技能比武考核试卷及答案
- 债务重组合同协议书样本
- 杜绝“死亡游戏”(梦回大唐)学生安全主题班会课件
- 《妇产科学》课件-9.2产力异常
- 《新能源汽车》课件 课题四 纯电动汽车
- 金融领域反腐
- 应急物业合同范本(2篇)
- 《机械制图(多学时)》中职完整全套教学课件
- 高原施工保障方案
- 《颅内压增高的临床表现》教学课件
- 三洋洗衣机XQB60-M808使用说明书
- 心理问题与心理障碍
评论
0/150
提交评论