面向对象程序设计同名117

上传人:工**** 文档编号:571317184 上传时间:2024-08-10 格式:PPT 页数:21 大小:150KB
返回 下载 相关 举报
面向对象程序设计同名117_第1页
第1页 / 共21页
面向对象程序设计同名117_第2页
第2页 / 共21页
面向对象程序设计同名117_第3页
第3页 / 共21页
面向对象程序设计同名117_第4页
第4页 / 共21页
面向对象程序设计同名117_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《面向对象程序设计同名117》由会员分享,可在线阅读,更多相关《面向对象程序设计同名117(21页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章 C+C+输入输入/ /输出流类库输出流类库 C C语言输入输出系统的缺陷语言输入输出系统的缺陷 C+C+输入输出流输入输出流 C+C+输入输出流类库输入输出流类库 I/OI/O格式控制格式控制 文件操作文件操作C语言语言I/O系统缺陷系统缺陷 printf()与与scanf()只可用于输入输出基本数据只可用于输入输出基本数据类型。类型。 C+可通过重载运算符可通过重载运算符“”和和“”对对结构类型实现输入和结构类型实现输入和 输出。输出。当输入输出数据与预设格式不匹配时,当输入输出数据与预设格式不匹配时,C编编译系统不能发现问题,以保证其调用的正译系统不能发现问题,以保证其调用的

2、正确性。确性。 例例printf()与与scanf()的缺陷的缺陷int j=10;float f=2.3void fn()printf(“%d”,f); / 按整型数据解码方式输出按整型数据解码方式输出f / 前两个字节的内容前两个字节的内容 scanf(“%d”,&f); / 按整型数据编码方式将数据存入按整型数据编码方式将数据存入f / 前两个字节中前两个字节中 scanf(“%d”,j); / 将一个整数存入地址为将一个整数存入地址为0x000A / 的内存段中的内存段中 printf(“%d”, “good”); / 输出输出“good”的地址值的地址值C+输入输出流输入输出流 流流

3、(stream):主机与外部设备介质间的数据流。主机与外部设备介质间的数据流。 标准标准I/O流的设备名:流的设备名:C+名字名字设备设备C中的名字中的名字默认值默认值cin键盘键盘stdin标准输入标准输入 cout屏幕屏幕 stdout标准输出标准输出 cerr屏幕屏幕 stderr标准错误输出标准错误输出(非缓冲方式)(非缓冲方式) clog打印机打印机 stdprn标准错误输出标准错误输出(缓冲方式)(缓冲方式)I/O 流类库流类库 streambuf 类类 streambuf 类类:提供对缓冲区的低级操作,设置缓:提供对缓冲区的低级操作,设置缓冲区、操作缓冲区指针、向缓冲区存取字符。

4、冲区、操作缓冲区指针、向缓冲区存取字符。 streambuf 类类及其派生类:及其派生类:streambuffilebufstrstreambufconbufI/O 流类库流类库 ios 类类 ios 类:提供对文件和设备的类:提供对文件和设备的I/O操作。操作。I/O 流类库流类库 ios 类类(续续) ios流类及其派生类均带有指向流类及其派生类均带有指向streambuf类的类的指针。指针。 ios流类的直接派生类:流类的直接派生类: istream(标准输入流类标准输入流类) ostream(标准输出流类标准输出流类) fstreambase(文件流类文件流类) strstreamba

5、se(串流类串流类)标准标准I/O 流类流类 标准输出类(标准输出类(ostream):):提供系统标准输提供系统标准输出设备接口,完成数据输出操作。出设备接口,完成数据输出操作。 标准输入类(标准输入类(istream):):提供系统标准输提供系统标准输入设备接口,完成数据输入操作。入设备接口,完成数据输入操作。 使用标准输入输出类需包含头文件使用标准输入输出类需包含头文件“istream.h”、 “ostream.h”或或 “iostream.h”。 例例1 例例2 cin在头文件中被定义为在头文件中被定义为istream类的全局对象。类的全局对象。 cout、cerr和和clog为为os

6、tream类的全局对象。类的全局对象。标准标准I/O流类实例流类实例1/example7-1#include main()coutThis is a test!endl;return 0;This is a test!标准标准I/O流类实例流类实例2/example7-2#include#includemain()char *p=new char20; coutp; coutp=pendl;return 0;please input a string: computerp=computerI/O格式控制格式控制 用流用流对象的成员函数控制数据输入输出格式。对象的成员函数控制数据输入输出格式。

7、例例1 1 例例2 2函数原型函数原型功功 能能 int ios:width(int w);设置输出域宽设置输出域宽w,缺省值为缺省值为0 int ios:width();返回当前域宽值返回当前域宽值 int ios:precision(int p);设置有效数个数设置有效数个数p int ios:precision();返回当前有效数设置值返回当前有效数设置值 char ios:fill(char ch);设置填充字符设置填充字符ch,缺省值为空格缺省值为空格 char ios:fill();返回当前填充字符返回当前填充字符I/O格式控制(续)格式控制(续) 输出格式控制符:头文件输出格式控

8、制符:头文件iomanip.h (包含包含iostream.h)中定义,可直接插入流中,控制输出中定义,可直接插入流中,控制输出格式。格式。 例例3 例例4控制符控制符流成员函数流成员函数功能功能 dec flags(10)置置基数为基数为10 hex flags(16)置置基数为基数为16 oct flags(8)置置基数为基数为8 setfill(c ) flags(c )设设填充字符为填充字符为c setprecision(n) precision(n)设设输出有效数个数输出有效数个数 setw(n) width(n)设设输出域宽为输出域宽为nI/O格式控制实例格式控制实例1/examp

9、le7-3#includemain()for(int i=1;i8;i+)cout.fill( ); cout.width(i); cout ; cout.fill(m); cout.width(15-2*i); coutmendl; return 0; mmmmmmmmmmmmm mmmmmmmmmmm mmmmmmmmm mmmmmmm mmmmm mmm mI/O格式控制实例格式控制实例2/example7-4#includevoid main()double f=12.34567; coutf=f; cout default precision=cout.precision()endl

10、; cout.precision(2); coutf=f; cout precision=cout.precision()endl; cout.precision(5); coutf=f; cout precision=cout.precision()endl;f=12.3457 default precision=6f=12 precision=2f=12.346 precision=5I/O格式控制实例格式控制实例3/example7-5#includevoid main()double f=12.34567; coutf=fendl; coutsetprecision(2)f=fendl

11、; coutsetprecision(5)f=fendl;f=12.3457f=12f=12.346I/O格式控制实例格式控制实例4/example7-6#includemain()for(int i=1;i8;i+)coutsetfill( )setw(i) setfill(m); coutsetw(15-2*i)mendl; return 0;mmmmmmmmmmmmm mmmmmmmmmmm mmmmmmmmm mmmmmmm mmmmm mmm m文件操作文件操作 文件操作:打开、关闭、数据输入、数据文件操作:打开、关闭、数据输入、数据输出。输出。(包含头文件包含头文件fstream.

12、h) 文件流类:文件流类:文件流类文件流类基类基类功能功能 fstream iostream文件输入输文件输入输出出 ifstream istream文件输入文件输入 oftream ostream文件输出文件输出文件操作(续文件操作(续1) 定义文件流对象定义文件流对象 文件流类文件流类 文件流对象名;文件流对象名;/建立文件流对象建立文件流对象 文件流类文件流类 文件流对象名(文件名);文件流对象名(文件名); / 建立文件对象,同时打开文件建立文件对象,同时打开文件 文件流变量:建立文件流对象的检测值,文件流变量:建立文件流对象的检测值, 0失败,失败, 1成功成功 通过文件对象打开文件

13、:通过文件对象打开文件:对象名对象名.open(文件名文件名,文件打开模式文件打开模式, 文件保护模式文件保护模式);文件操作(续文件操作(续2 2) 文件打开模式:文件打开模式: 标志标志含义含义 ios:ate如果文件存在,数据追加在文件尾如果文件存在,数据追加在文件尾 ios:in打开文件,读出数据(打开文件,读出数据(ifstream默认)默认) ios:out打开文件,写入数据(打开文件,写入数据(oftream默认)默认) ios:trunc打开文件,清除所有数据打开文件,清除所有数据 ios:nocreat若若文件不存在,返回错误文件不存在,返回错误 ios:noreplace若

14、若文件存在,返回错误文件存在,返回错误 ios:binary以以二进制方式打开文件二进制方式打开文件(否则默认为文本否则默认为文本)文件操作(续文件操作(续3 3) 文件保护模式:文件保护模式:例:例:fstream f; f.open(“file1”,ios:out|ios:in);文件关闭:清理文件缓冲区,调用流对象成员函文件关闭:清理文件缓冲区,调用流对象成员函数数close()。 例例 标志标志含义含义 filebuf:openprot兼容共享方式(默认)兼容共享方式(默认) filebuf:sh_none独占,不共享独占,不共享 filebuf:sh_read允许读共享允许读共享 filebuf:sh_write允许写共享允许写共享文件操作实例文件操作实例1 1#include /example7-7main()ofstream fout(testfile); if (!fout) coutCannot open output file.endl; return 1; foutchinan; fout16; fout.close(); ifstream fin(testfile); if(!fin) coutCannot open input file.si; couts iendl; fin.close(); return 0; china 16

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号