输入输出流课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《输入输出流课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 课件
- 资源描述:
-
1、 I/OI/O(输入(输入/输出)流类库提供对象之间的数据交互服务输出)流类库提供对象之间的数据交互服务 流类库预定义了一批流对象,连接常用的外部流类库预定义了一批流对象,连接常用的外部输入输入/输出输出设备设备 用户可以定义所需的用户可以定义所需的I/OI/O流对象,使用流库提供的一些功能,流对象,使用流库提供的一些功能,实现数据传输实现数据传输流类库流类库 流流类类库(库(stream librarystream library)是用继承方法建立的输入输出类库)是用继承方法建立的输入输出类库 流流类类库具有两个平行的基类:库具有两个平行的基类:streambuf streambuf 和和
2、ios ios 类,所有流类类,所有流类库均以两者之一作为基类库均以两者之一作为基类 streambuf streambuf 类提供对缓冲区的低级操作类提供对缓冲区的低级操作设置缓冲区设置缓冲区,对缓冲区指针进行操作向缓冲区存对缓冲区指针进行操作向缓冲区存/取字符取字符 ios ios 类及其派生类提供用户使用流类的接口,支持对类及其派生类提供用户使用流类的接口,支持对streambuf streambuf 的缓冲区输入的缓冲区输入/输出的格式化或非格式化转换输出的格式化或非格式化转换streambuf对缓冲区的低级操作filebufstrstreambufstdiobufstreambuf对
3、缓冲区的低级操作filebufstrstreambufstdiobuf文件缓冲区管理streambuf对缓冲区的低级操作filebufstrstreambufstdiobuf字符串缓冲区管理streambuf对缓冲区的低级操作filebufstrstreambufstdiobuf标准I/O缓冲区管理提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream提供用户接口提供用户接口io
4、sistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流
5、输出串流输出串流输出文件流输出文件流提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstr
6、eamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输
7、入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流重载运算符重载运算符“=”重载运算符重载运算符“=”提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输
8、入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流重载运算符重载运算符“=”重载运算符重载运算符“=”文件是由一系列数据构成的序列。文件是由一系列数据构成的序列。例如,一组计算或处理结果可以构成一个文件。例如,一组计算或处理结果可以构成一个文件。一个班所有学生的档案数据也可以构成一个文件。一个班所有学生的档案数据也可以构成一个文件。每个文件的内容都保存在外存储器中,每个文件都有一个名字,每个文件的内容都保存在外存储器中,每个文件都有一个名字,这个名字用标识符来表示。这个名字用标识符来表示。把数据存放在外存储器是以文件的方式进行,从外存储器
9、把数把数据存放在外存储器是以文件的方式进行,从外存储器把数据取出来也以文件的方式进行。据取出来也以文件的方式进行。在在C+C+中,必须使用文件来解决数据的存储问题。中,必须使用文件来解决数据的存储问题。C+C+语言系统把文件看成无结构的字节流。语言系统把文件看成无结构的字节流。根据文件中数据的编码方式可以把文件分为文本文件和二进制根据文件中数据的编码方式可以把文件分为文本文件和二进制文件。文件。根据文件中数据的存取方式可以把文件分为顺序文件和随机文根据文件中数据的存取方式可以把文件分为顺序文件和随机文件件 。在在C+C+中,要进行数据的存取需要使用三个类:文件输入流类中,要进行数据的存取需要使
10、用三个类:文件输入流类ifstreamifstream、文件输出流类、文件输出流类ofstream ofstream 和文件输入输出流类和文件输入输出流类fstream fstream。文件输入流类文件输入流类ifstreamifstream:提取文件中的数据到内存。:提取文件中的数据到内存。文件输出流类文件输出流类ofstreamofstream:把内存中的数据插入到文件。:把内存中的数据插入到文件。文件输入输出流类文件输入输出流类fstreamfstream:上述两种功能都有。:上述两种功能都有。11.5.111.5.1 文件和流文件和流0 1 2 3 4 5 n-1文件字节序号文件结束符
11、文件长度=n11.5.111.5.1 文件和流文件和流0 1 2 3 4 5 n-1文件指针11.5.111.5.1 文件和流文件和流0 1 2 3 4 5 n-1文件结束11.5.111.5.1 文件和流文件和流0 1 2 3 4 5 n-1 文件中字节存放的都是数据的编码,这些编码可以是各种信息文件中字节存放的都是数据的编码,这些编码可以是各种信息的编码。应用程序对字节序列可以作出各种类型数据或其它信息的的编码。应用程序对字节序列可以作出各种类型数据或其它信息的解释。解释。如果文件中的每一个字节存放的是如果文件中的每一个字节存放的是ASCASC码,则每个字节表示一码,则每个字节表示一个字符
12、。个字符。以以ASCASC码方式存放数据的文件称为文本文件。文本文件是一种码方式存放数据的文件称为文本文件。文本文件是一种顺序文件。顺序文件。在文本文件中,需要使用一个表示文件结束的标识常量在文本文件中,需要使用一个表示文件结束的标识常量EOFEOF,它在它在iostreamiostream中定义,值为中定义,值为26(0 x1A)26(0 x1A)。关闭文件后,该字符被自动。关闭文件后,该字符被自动添加到文件的尾部。添加到文件的尾部。以二进制代码方式存放数据的文件称为二进制文件。以二进制代码方式存放数据的文件称为二进制文件。二进制文件是一种随机文件。二进制文件是一种随机文件。当把内存中的数据
13、存放到二进制文件时,当把内存中的数据存放到二进制文件时,C+C+把数据把数据转换成二进制代码写到二进制文件中去。转换成二进制代码写到二进制文件中去。当从二进制文件中取数据时,当从二进制文件中取数据时,C+C+把文件中的字节流把文件中的字节流解释为各种类型数据读出来存放到内存。解释为各种类型数据读出来存放到内存。0 1 2 3 4 5 n-1-内存-ifstream ofstream 读文件写文件11.5.2 11.5.2 打开和关闭文件打开和关闭文件 文件操作的基本步骤:文件操作的基本步骤:1.1.打开文件打开文件2.2.读读 /写文件写文件3.3.关闭文件关闭文件 1.1.打开文件打开文件包
14、括建立文件流对象;调用open()函数连接外部文件。打开文件有两种方法:(1)首先建立流对象,然后调用open()函数连接外部文件流类流类 对象名对象名;对象名对象名.open(文件名文件名,方式方式);ifstream、ofstream 或 fstream标识常量值意义ios:in0 x0001读方式打开文件ios:out0 x0002写方式打开文件ios:ate0 x0004打开文件时,指针指向文件尾ios:app0 x0008追加方式ios:trunc0 x0010删除文件现有内容ios:nocreate0 x0020如果文件不存在,则打开操作失败ios:noreplace0 x0040
15、如果文件存在,则打开操作失败ios:binary0 x0080二进制方式打开,默认为文本方式例如:例如:打开一个已有文件datafile.dat,准备读:ifstream infile;/建立输入文件流对象 infile.open(datafile.dat,ios:in);/连接文件,指定打开方式 打开(创建)一个文件newfile.dat,准备写:ofstream outfile;/建立输出文件流对象 outfile.open(d:newfile.dat,ios:out);/连接文件,指定打开方式(2)调用流类带参数的构造函数,建立流对象的同时连接外部文件流类流类 对象名对象名(文件名文件名
16、,方式方式);ifstream、ofstream 或 fstream例如例如:ifstream infile(datafile.dat,ios:in);ofstream outfile(d:newfile.dat,ios:out);fstream rwfile(myfile.dat,ios:in|ios:out);用或运算符“|”连接两个表示打开方式的标识常量2.2.关闭文件关闭文件例如:例如:ofstream ofile;/创建输出文件流 ofile.open(myfile1,ios:out);/ofile流与文件“myfile1”相关联 /访问文件“myfile1”ofile.close(
17、);/关闭文件“myfile1”ofile.open(myfile2,ios:out);/重用ofile流 关闭文件操作的作用是把缓冲区数据完整地写入文件,添加关闭文件操作的作用是把缓冲区数据完整地写入文件,添加文件结束标志,切断流对象和外部文件的连接文件结束标志,切断流对象和外部文件的连接。关闭文件要使用流类的成员函数关闭文件要使用流类的成员函数close()。当一个流对象的生存期结束,系统也会自动关闭文件当一个流对象的生存期结束,系统也会自动关闭文件。#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 en
18、dl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用/创建输出流对象#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl
19、;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式/向流插入数据#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n
20、endl d endl;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式/向流插入数据/关闭文件#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式/向流插入数据/关闭文件/创建输入流对象并建立关联#include int main()ofstream ost;ost.open(a:my1.dat ,
21、ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式/向流插入数据/关闭文件/创建输入流对象并建立关联/从流提取数据#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d endl;open()和和 close()函数应用函数应用/创建输出流对象/建立文件关联,缺省为文本模式/向流插入数据/关闭文件/创建输
22、入流对象并建立关联/从流提取数据/向预定义流插入数据#include int main()ofstream ost;ost.open(a:my1.dat ,ios:out);ost 20 endl;ost 30.5 n d;cout n endl d a b;0 1 2 3 4 5 ifstream fin读文件2 4 3 7 8 int a,b;fin a b;a 0X00f30 1 2 3 4 5 ifstream fin读文件2 4 3 7 8 int a,b;fin a b;a 0X00f3b 0X004e0 1 2 3 4 5 2 4 3 7 8 int a,b;fin a b;a
23、0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=c a b;a 0X00f3b 0X004eint c;c=a*b;fout c=cendl;ofstream foutc
24、0X01412 4 3 7 8 c =3 2 1 n#include#include int main()ofstream ost;ost.open(a:my2.dat);ost 1234567890 endl;int a=123;ost a endl;ost setw(10)a endl;ost resetiosflags(ios:right)setiosflags(ios:left)setfill(#)setw(10)a endl;ost resetiosflags(ios:left)setiosflags(ios:right)setprecision(5)setw(10)12.34567
25、890 endl;ost.close();使用格式控制建立的文本文件使用格式控制建立的文本文件#include#include int main()ofstream ost;ost.open(a:my2.dat);ost 1234567890 endl;int a=123;ost a endl;ost setw(10)a endl;ost resetiosflags(ios:right)setiosflags(ios:left)setfill(#)setw(10)a endl;ost resetiosflags(ios:left)setiosflags(ios:right)setprecisi
展开阅读全文