C第九章流类库与输入输出.ppt_第1页
C第九章流类库与输入输出.ppt_第2页
C第九章流类库与输入输出.ppt_第3页
C第九章流类库与输入输出.ppt_第4页
C第九章流类库与输入输出.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计,内蒙古工业大学,1,第九章 流类库与输入输出,输出流 输入流 格式化输入和输出 磁盘文件的输入和输出,面向对象程序设计,内蒙古工业大学,2,流类库,流的概念及流类库结构 流 数据从一个对象到另一个对象的流动 提取操作 从流中获取数据的操作 插入操作 向流中添加数据的操作 输入流数据流向程序 eg:cin 输出流数据流出程序 eg:cout,面向对象程序设计,内蒙古工业大学,3,流类库,流的概念及流类库结构 流类库 C+将与输入输出有关的操作定义为一个类体系 流类:执行输入输出操作的类体系 流类库:提供这个流实现的系统库,面向对象程序设计,内蒙古工业大学,4,流类库,流的概念及

2、流类库结构 流类库 预定义的流 cin:标准输入 cout:标准输出 cerr:标准错误输出 clog:标准错误输出(缓冲,支持文件的流类 include ifstream:读文件 ofstream:写文件 fstream:读/写操作,面向对象程序设计,内蒙古工业大学,5,输出流,屏幕输出 使用预定义的插入符: 可以串联多个插入运算符,输出多个数据项 在插入符后面可以写任意复杂的表达式,系统自动计算出他的值并传递给插入符,coutlength is:strlen(hello world)endl,面向对象程序设计,内蒙古工业大学,6,输出流,屏幕输出 使用成员函数put( )输出一个字符 pu

3、t( )将字符送进输出流 cout.put(char c); 或 cout.put(const char c); 返回值是ostream类的对象的引用,char c=m; cout.put(c); cout.put(m,put输出,面向对象程序设计,内蒙古工业大学,7,输出流,屏幕输出 使用成员函数write( )输出一个字符串 write( )将字符串送到输出流 cout.write ( const char *str , int n ) str:是一个字符指针或字符数组,存放字符串 n:是表示输出显示字符串中字符的个数 用strlen(str)表示显示整个字符串,string str=ho

4、w are you?; cout.write(str,strlen(str,write输出,面向对象程序设计,内蒙古工业大学,8,输入流,键盘输入 使用预定义的提取符: 将提取符作用在流类对象cin上 cin表达式表达式 提取符可连续写多个,每个表达式表示获得输入的对象或变量,面向对象程序设计,内蒙古工业大学,9,输入流,键盘输入 使用成员函数get( )获取一个字符 get( ):从输入流获取一个字符,并把它放在指定变量中 cin.get(char buf:字符指针或字符数组 limit:限制从输入流中读取到buf中字符个数,最多只能读limit-1个 deline:指定结束符,默认为n,面

5、向对象程序设计,内蒙古工业大学,11,输入流,键盘输入 使用成员函数read( )读取一串字符 read( ):从输入流中读取指定数目的字符并将他们存放在指定的数组中 cin.read( char * buf , int size) buf:存放读取到的字符的字符指针或字符数组 size:指定从输入流中读取字符的个数,read读取,面向对象程序设计,内蒙古工业大学,12,格式化输入和输出,输出流 输入流 插入符和提取符的重载 格式化输入和输出 磁盘文件的输入和输出,面向对象程序设计,内蒙古工业大学,13,格式化输入和输出,输出格式控制 格式化输出函数,eg9_16,面向对象程序设计,内蒙古工业

6、大学,14,格式化输入和输出,输出格式控制 操作符 dec:十进制、hex:十六进制、oct:八进制 ws:提取空白符、ends:插入空字符 setiosflags(long):设置参数指定的标志位 resetiosflags(long):清除参数指定的标志位 setfill( ):设置填充字 setsprecision(int):设置浮点数输出的有效数字数 setw(int):设置输出数据项的宽度,eg9_17,面向对象程序设计,内蒙古工业大学,15,磁盘文件的输入和输出,磁盘文件操作 文件的分类 按照存储形式分类 文本文件:每个字节存放一个ASII代码表示一个字符,可直接按字符形式输出,便

7、于阅读 二进制文件:数据的内部存储形式原样存放到文件中,存储效率高,但不能直接按字符形式输出,面向对象程序设计,内蒙古工业大学,16,磁盘文件的输入和输出,磁盘文件操作 文件流 在C+中,文件操作是通过文件流来完成的 以外存文件为输入输出对象的数据流 输出文件流 从内存流向外存文件的数据 输入文件流 从外存文件流向内存的数据,面向对象程序设计,内蒙古工业大学,17,磁盘文件的输入和输出,磁盘文件操作 三种文件流 输入文件流 打开一个文件输入流时,定义ifstream类的对象 输出文件流 打开一个文件输出流时,定义ofstream类的对象 输入输出文件流 打开一个文件输入输出流时,定义fstre

8、am类的对象 需包含头文件:#include,面向对象程序设计,内蒙古工业大学,18,磁盘文件的输入和输出,磁盘文件操作 文件操作的基本过程 打开文件 读写文件 关闭文件,面向对象程序设计,内蒙古工业大学,19,磁盘文件的输入和输出,磁盘文件的打开和关闭操作 打开文件 使一个文件流对象与一个指定的文件相关联 打开文件的方法 先建立流对象,然后调用open( )函数连接外部文件 流类 对象名; 对象名.open(文件名,打开方式) 调用流类带参数的构造函数,建立流对象时连接外部文件 流类 对象名(文件名,打开方式,面向对象程序设计,内蒙古工业大学,20,磁盘文件的输入和输出,磁盘文件的打开和关闭

9、操作 文件打开模式,fstream outfile; outfile.open( “d:c+f1.txt” , 访问方式,ios:out,面向对象程序设计,内蒙古工业大学,21,磁盘文件的输入和输出,磁盘文件的打开和关闭操作 打开文件 例如,打开d:c+目录下data.txt文件,输入数据 则 或,ofstream ofile(“d:c+data.txt”, ios:out,ofstream ofile; ofile.open(“d:c+data.txt”, ios:out,面向对象程序设计,内蒙古工业大学,22,磁盘文件的输入和输出,磁盘文件的打开和关闭操作 关闭文件 使打开的文件与流对象脱

10、钩 可使用close( )成员函数 流对象名.close( ); 例如,关闭刚打开的流对象ofile ofile.close(,面向对象程序设计,内蒙古工业大学,23,磁盘文件的输入和输出,磁盘文件的打开和关闭操作 关闭文件,void main() ofstream ostrm;ostrm.open(d:c+f1.txt); ostrmnd;coutn, dendl; istrm.close();,closefile,面向对象程序设计,内蒙古工业大学,24,磁盘文件的输入和输出,文本文件的读写操作,void main() fstream outfile; outfile.open( d:c+

11、f2.txt,ios:out); if(!outfile) coutf2.txt cant open.n; abort();/退出程序 outfilethis is a program.n; outfilethis is a program.n; outfile.close();,写文本文件,面向对象程序设计,内蒙古工业大学,25,磁盘文件的输入和输出,文本文件的读写操作,void main() fstream infile; infile.open ( d:c+ f2.txt, ios:in); if(!infile) coutf2.txt cant open.n; abort();/退出程

12、序 char s80; while(!infile.eof() infile.getline(s,sizeof(s); coutsendl; infile.close();,读文本文件,面向对象程序设计,内蒙古工业大学,26,磁盘文件的输入和输出,二进制文件的读写操作 打开二进制文件 在open( )函数中加上ios:binary 向二进制文件写信息 使用write( )函数 从二进制文件读信息 使用read( )函数,二进制文件读写,面向对象程序设计,内蒙古工业大学,27,磁盘文件的输入和输出,二进制文件的读写操作,struct person char name20; double height; unsigned short age; ; struct person people4= wangli,1.65,20,zhang,1.70,20, lili,1.68,19,zhao,1.60,19,面向对象程序设计,内蒙古工业大学,28,磁盘文件的输入和输出,二进制文件的读写操作,void main() fstream infile,outfile; outfile.open( d:c+f5.dat , ios:out | ios:binary); if(!outfile) coutf5.dat cant open.n; abort(); for(int i=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论