《第9章流类库与输入输出.ppt》由会员分享,可在线阅读,更多相关《第9章流类库与输入输出.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第9章章 流类库流类库与输入输出与输入输出本章主要内容本章主要内容I/O流的概念流的概念输出流输出流输入流输入流输入输入/输出流输出流9.1 I/O流的概念流的概念当程序与外界环境进行信息交换时,存在着两个当程序与外界环境进行信息交换时,存在着两个对象对象,一个是一个是程序中的对象程序中的对象,另一个是另一个是文件对象文件对象。流是一种抽象,它负责在数据的流是一种抽象,它负责在数据的生产者生产者和数据的和数据的消费者消费者之间建立联系,并管理数据的流动。之间建立联系,并管理数据的流动。程序建立一个程序建立一个流对象流对象,并指定这个流对象与某个,并指定这个流对象与某个文件对象建立连接,程序操
2、作流对象,流对象通文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。过文件系统对所连接的文件对象产生作用。读操作在流数据抽象中被称为读操作在流数据抽象中被称为(从流中从流中)提取提取(),写操作被称为,写操作被称为(向流中向流中)插入插入()。iosistreamostreamifstreamistringstreamofstreamostringstreamiostreamfstreamstringstreamstdiostream主要流类库派生关系图主要流类库派生关系图预先定义的标准输入输出流对象预先定义的标准输入输出流对象:cin 标准输入标准输入cout
3、标准输出标准输出cerr 标准错误输出,没有缓冲,发送给它的标准错误输出,没有缓冲,发送给它的内容立即被输出。内容立即被输出。clog 类似于类似于cerr,但是有缓冲,缓冲区满时被,但是有缓冲,缓冲区满时被输出。输出。9.2 输入输出格式控制输入输出格式控制使用操纵符使用操纵符使用标志位使用标志位使用成员函数使用成员函数1.使用操纵符进行格式控制使用操纵符进行格式控制使用操纵符可以进行输入输出格式控制。使用操纵符可以进行输入输出格式控制。部分操部分操纵符需包含头文件纵符需包含头文件iomanip常用操纵符有常用操纵符有(P38 表表2-6)dec,hex,oct 数据采用十进制数据采用十进制
4、,十六进制和八进制十六进制和八进制(I/O)ws 提取空白符提取空白符(I)endl 插入换行符,并刷新流插入换行符,并刷新流(O)ens 插入空白符插入空白符(O)setprecision(int n)设置小数位数设置小数位数(O)setw(int n)设置宽度设置宽度(O)setfill(char c)设置填充设置填充(O)setbase(int b)设置基数设置基数,b=8,10,16,与使用与使用oct,dec,hex 相当相当(I/O)例例9-1、例、例9-22.使用标志位进行格式控制使用标志位进行格式控制使用操纵符使用操纵符setiosflags,配合标志位进行输入输出,配合标志位
5、进行输入输出格式控制。格式控制。需包含头文件需包含头文件iomanip setiosflags(ios:标志位标志位)通过标志位来设置格式通过标志位来设置格式(I/O),标志位参见标志位参见P305 resetiosflags(ios:标志位标志位)清除已设置的标志位清除已设置的标志位例例9-33.使用成员函数进行格式控制使用成员函数进行格式控制使用成员函数可以进行输入输出格式控制。使用成员函数可以进行输入输出格式控制。常用成员函数有常用成员函数有 precision(int n)设置小数位数设置小数位数(O)width(int n)设置宽度设置宽度(O)fill(char c)设置填充设置填
6、充(O)flags(ios:标志位标志位)通过标志位来设置格式通过标志位来设置格式(I/O),标志位参见标志位参见P305例例9-49.3 文件操作文件操作iosistreamostreamifstreamistringstreamofstreamostringstreamiostreamfstreamstringstreamstdiostream文件操作要用到的类库关系图文件操作要用到的类库关系图ofstream的成员函数的成员函数open 打开一个输出文件流,要指定打开模式打开一个输出文件流,要指定打开模式close 关闭一个输出文件流关闭一个输出文件流write 写内存的一块内容到一个输
7、出文件流中写内存的一块内容到一个输出文件流中put 写一个字符到输出写一个字符到输出(文件文件)流中流中ifstream的成员函数的成员函数open 打开一个输入文件流,要指定打开模式打开一个输入文件流,要指定打开模式close 关闭一个输入文件流关闭一个输入文件流read 从一个输入文件流中读一块内容给内存从一个输入文件流中读一块内容给内存get 从输入从输入(文件文件)流中读一个字符流中读一个字符getline 从输入从输入(文件文件)流中读一行字符流中读一行字符(1)(1)先构造一个文件流对象并打开:如果先构造一个文件流对象并打开:如果在构造函在构造函数中指定一个文件名,当构造这个文件时
8、该文件是数中指定一个文件名,当构造这个文件时该文件是自动打开的自动打开的ofstreamofstream myFile(filename,iosmodemyFile(filename,iosmode););也可以也可以在调用默认构造函数之后使用在调用默认构造函数之后使用openopen成员函数成员函数打开文件打开文件ofstreamofstream myFilemyFile;/;/声明一个静态输出文件流对象声明一个静态输出文件流对象myFile.open(myFile.open(“filenamefilename”,iosmode,iosmode););/打开文件,使流对象与文件打开文件,使流对象与文件建立联系建立联系文件操作步骤:文件操作步骤:(2)(2)使用使用readread或或writewrite函数进行文件读或写函数进行文件读或写(3)(3)使用使用closeclose函数关闭文件函数关闭文件例例9-89-8