c讲稿第7章输入输出流

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《C++面向对象程序设计》2输入输出流第7章3本章内容7.1C++的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流4目标理解C++输入输出流及相关概念(★)理解标准输出流对象的使用及输出格式控制(★★)理解标准输入流对象及输入流的成员函数的使用(★★)理解文件概念、文件流与文件流对象的相关知识(★)理解二进制和文本文件的操作(★★)5第7章输入输出流7.1C++的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流67.1C++的输入和输出(一)输入输出的含义(二)C++的I/0对C的发展(三)C++的输入输出流77.1C++的输入和输出(一)输入输出的含义程序的输入是指从输入文件将数据传送给程序,输出是指将数据传送给输出文件。如:从键盘输入数据给程序、将程序运行结果显示在显示器上等。从操作系统的角度来看,每一个与主机相连的输入输出设备都被看作文件。文件是输入输出操作的对象。C++系统提供庞大的I/O类库,调用不同的类去实现不同的功能.87.1C++的输入和输出(一)输入输出的含义C++的输入与输出包括以下3方面的内容:(1)对系统指定的标准设备的输入和输出,称为标准的输入输出,简称标准I/0。(2)以外存磁盘文件为对象进行输入和输出,称为文件的输入输出,简称文件I/O。(3)对内存中指定的空间进行输入和输出,称为字符串输出输出,简称串I/O。97.1C++的输入和输出(二)C++的I/O对C的发展类型安全C++为了兼容C,保留了用printf和scanf进行输出输入的方法。C++在输入输出中添加了,编译系统对数据类型的严格检查。类型不正确的数据不能通过编译。可扩展性C++的I/O除了可以输入输出标准类型的数据以外,还可以输入输出用户自定义数据类型。107.1C++的输入和输出(三)C++的输入输出流C++的输入输出流简介“流”就是数据流,是字符序列在主机与外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,并管理数据的流动。具有方向性。内存输出缓冲区输入缓冲区输出设备输入设备数据形成cin流数据形成cout流117.1C++的输入和输出(三)C++的输入输出流C++中,输入输出流被定义为类,称为流类,用流类定义的对象称为流对象(cin,cout)。C++提供的用于输入输出的iostream类库存。(查看P222表7.1)C++的流库(streamlibrary)是用继承方法建立起来的一个输入输出类库。(查看P223图7.3)127.1C++的输入和输出(三)C++的输入输出流与iostream类库有关的头文件iostream:包含使用标准输入输出流所需的所有声明和定义。它包含四个标准流对象:cin、cout、cerr、clog,提供了无格式和格式化的I/O功能。fstream:包含有关文件处理的信息,提供建立文件和读写文件等各种操作的接口。strstream:用于字符串流的i/o。stdiostream:用于混合使用C和C++的I/O机制。iomanip:在使用格式化I/O时包含此头文件。137.1C++的输入和输出(三)C++的输入输出流在iostream头文件中定义的流对象C++中标准流设备名称默认设备默认含义cin键盘标准输入cout屏幕标准输出cerr屏幕标准错误输出clog打印机标准错误输出14第7章输入输出流7.1C++的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流157.4文件操作与文件流(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作167.4文件操作与文件流(一)文件的概念文件:指存储在外部介质上的数据集合,操作系统以文件为单位对数据进行管理。根据存储格式可以把文件分为两种类型:ASCII码文件(文本文件)内部格式文件(二进制文件)。如:100文本:001100010011000000110000---3B二进制:01100100-------------------1B177.4文件操作与文件流(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作187.4文件操作与文件流(二)文件流类和文件流对象文件流:以外存文件为输入输出对象的数据流。文件流与文件是有区别的。文件流本身不是文件,只是以文件为输入输出对象的流。文件流不是若干个文件组成的流。C++对文件的读写操作包含3个基本步骤:建立一个文件流对象把文件流对象与实际文件相关联,称为打开文件;对文件流进行读/写操作;关闭文件。197.4文件操作与文件流(二)文件流类和文件流对象C++的I/O类库中定义了三种文件类,专门用于文件操作。ifstream类:从istream类派生,用来支持磁盘文件的输入。ofstream类:从ostream类派生,用来支持磁盘文件的输出。fstream类:从iostream类派生,用来支持磁盘文件的输入和输出。207.4文件操作与文件流(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作217.4文件操作与文件流(三)文件的打开与关闭打开文件打开文件操作包括建立文件流对象,与外部文件关联,指定文件的打开方式。打开文件有两种方式:方式一:先建立流对象,后调用open连接外部文件。流类对象名;对象名.open(文件名,打开方式);方式二:调用流类带参数的构造函数,建立对象的同时连接外部文件。流类对象名(文件名,打开方式);227.4文件操作与文件流(三)文件的打开与关闭打开文件方式一:流类对象名;对象名.open(文件名,打开方式);方式二:流类对象名(文件名,打开方式);“流类”是流类库中定义的文件流类,ifstream用于读方式打开文件,ofstream用于写方式打开文件,而fstream用于读/写方式打开文件。“打开方式”是ios定义的标识常量,表示文件的访问方式(查看表7-7)。用户定义标识符外部文件名237.4文件操作与文件流(三)文件的打开与关闭打开文件方式一:流类对象名;对象名.open(文件名,打开方式);方式二:流类对象名(文件名,打开方式);ifstreaminfile;infile.open(“d:\\file1.txt”,ios::in);fstreamrwfile(“d:\\file3.txt”,ios::in|ios::out);247.4文件操作与文件流(三)文件的打开与关闭打开文件说明事项:新版本C++的I/O类库中不提供ios::nocreate和ios::noreplace。每个打开的文件都有一个文件指针,它的初始位置由I/O方式决定。可以用“|”位或运算符对输入输出方式进行组合。如果打开失败,open函数返回0值。可据此测试打开是否成功。257.4文件操作与文件流(三)文件的打开与关闭关闭文件当一个文件读写操作完毕后,应及时关闭文件。关闭文件操作主要完成将缓冲区数据完整地写入文件,添加文件结束标志,切断流对象和外部文件的连接等任务。关闭文件方式:对象名.close();例:267.4文件操作与文件流#includeiostream#includefstreamusingnamespacestd;intmain(){ofstreamoutfile(d:\\f1.txt,ios::out);if(!outfile)cout打开文件错误!endl;outfile.close();return0;}277.4文件操作与文件流(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作287.4文件操作与文件流(四)对ASCII文件的操作ASCII文件:文件的每一个字节中均以ASCII码形式存放数据,即一个字节存放一个字符。ASCII文件的读写操作有两种形式:用“”和“”输入输出标准类型的数据。用文件流中的put,get,getline等成员函数进行字符的输入输出。例:整形数组含3个元素,将他们存到文件中,并取出来,在屏幕上显示。297.4文件操作与文件流(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作307.4文件操作与文件流(五)对二进制文件的操作二进制文件:将内存中数据存储形式不加转换地传送到磁盘文件中,即以二进制形式存储信息。打开二进制文件时,必须要指定ios::binary。用成员函数read和write读写二进制文件istream&read(char*buffer,intlen);ostream&write(constchar*buffer,intlen);指向内存中一段存储空间读写的字节数317.4文件操作与文件流(五)对二进制文件的操作例:将三个学生的信息存到二进制文件中,学生定义如下:structstudent{charname[20];intnum;intage;charsex;};327.4文件操作与文件流(五)对二进制文件的操作与文件指针相关的流成员函数(P254表7.7)文件指针相对移动函数移动读指针:seekg();移动写指针:seekp();33练习例7.13从键盘中读入一行字符,将其中的字母字符依次存入f2.dat中,再将文件中的内容读入程序,将小写字母改成大写字母,存入f3.dat中。思考:何种文件形式?阅读分析例7.1634实验十一文件操作实验内容:课后第5题实验时间:周五三单元实验报告:十六周周二一单元上交35小结(一)文件的概念(二)文件流类和文件流对象(三)文件的打开与关闭(四)对ASCII文件的操作(五)对二进制文件的操作367.4文件操作与文件流(五)对二进制文件的操作与文件指针相关的流成员函数参照位置:ios::cur当前位置ios::end结尾ios:beg开头例:infile.seekg(100)infile.seekg(-50,ios::cur)Outfile.seekg(10,ios::beg)37第7章输入输出流7.1C++的输入和输出7.2标准输出流7.3标准输入流7.4文件操作与文件流7.5字符串流387.2标准输出流(一)cout、cerr、clog流对象cout它是ostream流类的对象,表示流向显示器的数据,用流插入运算符“”顺序加入。用“cout”可以直接输出基本类型数据。例:inta,b;coutab;如果想输出用户定义数据类型,必须先进行运算符的重载。例:定义complex类,实现该对象的输出。complexc1;coutc1;ostream&opeator(ostream&,complex&);397.2标准输出流(一)cout、cerr、clog流对象cerr:是标准出错流,被指定为与显示器关联,它的作用是向标准出错设备输出有关出错信息。例:(查看P227例7.1)clog:是标准出错流,作用也是在终端显示器上显示出错信息。cerr与clog的区别:cerr不经过缓冲区,直接向显示器输出有关信息。clog中的信息存放在缓冲区中,缓冲区满或遇到endl时才向显示器输出。407.2标准输出流(二)格式输出使用控制符控制输出格式(查看P228表7.3)coutdecaendl;例:(查看P228例7.2)用流对象的成员函数控制输出格式(查看P229表7.4)cout.width(10);例:(查看P230例7.3)417.

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功