第七章C++的流类库与输入输出(2013秋)_第1页
第七章C++的流类库与输入输出(2013秋)_第2页
第七章C++的流类库与输入输出(2013秋)_第3页
第七章C++的流类库与输入输出(2013秋)_第4页
第七章C++的流类库与输入输出(2013秋)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第七章C++的流类库与输入输出1C++流的概述1预定义类型的输入输出用户自定义类型的输入输出文件的输入输出234第七章C++的流类库与输入输出25命名空间7.1C++流的概述就像C语言一样,C++语言中也有输入/输出语句。C语言的输入输出系统只能识别系统预定义的类型,不支持用户自定义类型的I/O操作。每一个C++编译系统都带有一个面向对象的输入/输出软件包,这就是I/O流类库。利用C++类机制能建立一个可扩展的I/O系统。37.1C++流的概述流是C++为输入/输出提供的一组类。所谓流就是指数据从一个对象流向另一个对象,C++的输入输出是以字节流的形式实现的。流具有方向性:输入流、输出流、输入输出流。4

用于输入输出的头文件:iostream:包含了对输入输出流进行操作所需的基本信息;fstream:用于用户管理文件的I/O操作,用于使用文件流对象进行针对磁盘文件的操作;strstream:用于字符串流的I/O操作;iomanip:用于输入输出的格式控制。57.1C++流的概述

用于输入输出的流类:67.1C++流的概述

预定义的流对象:

cin:标准输入。默认设备为键盘;cout:标准输出。默认设备为显示器;clog:标准错误输出。有缓冲,当缓冲区满时被输出,默认设备为显示器。

cerr:标准错误输出。没有缓冲,发送给它的内容立即被输出,默认设备为显示器。77.1C++流的概述

输入输出流的成员函数:put函数:cout.put(charc);get函数:cin.get(ch);getline函数:

cin.getline(字符数组,字符个数,终止标志字符)cin.getline(字符指针,字符个数,终止标志字符)

ignore函数:cin.ignore(n,终止字符)87.1C++流的概述

插入运算符和提取运算符:cin>>变量;//输入cout<<常量或变量;//输出输出时,可以把多个不同类型的数据组合在一条语句中,使用起来很方便;

输入时,可用空格、换行、Tab将键入的数据间隔开,并检查输入数据与变量的匹配情况。97.2预定义类型的输入输出

输入输出的格式控制:[1]使用ios类的成员函数进行格式控制

ios类中有几个流成员函数可以用来对输入输出进行格式控制;

输入输出格式由ios类包含的格式状态标志字确定,它是ios的公共成员,属枚举量,每个成员定义一个状态标志位。107.2预定义类型的输入输出

用于控制输入输出格式的流成员函数:

setf(flags):设置状态标志;unsetf(flags):清除状态标志;width(n):设置字段域宽度为n位;fill(charch):设置填充字符ch;precision(n):设置实数的精度为n位。117.2预定义类型的输入输出类ios中定义的状态标志

ios::skipws //跳过输入空格ios::left //输出左对齐ios::right //输出右对齐ios::internal, //符号和进制指示符后的填补ios::dec //十进制转换ios::oct //八进制转换ios::hex //十六进制转换ios::showbase //输出时显示进制指示符ios::showpoint //显示十进制小数点ios::uppercase //大写十六进制输出ios::showpos //正数前显示“+”ios::scientific //科学计数表示法表示浮点数ios::fixed //定点形式显示浮点数ios::unitbuf //在输出操作后刷新所有流ios::stdio //在输出操作后刷新stdout,stderr

127.2预定义类型的输入输出[2]使用预定义的操纵符进行

输入输出格式控制:改变输入输出格式的另外一种更方便的方法是使用操纵符(操纵函数),操纵符可以插入在插入或抽取运算表达式中,例:

inti=123;cout<<hex<<i<<endl<<dec<<i<<endl;cin>>setw(5)>>i<<endl;137.2预定义类型的输入输出操纵符分为无参操纵符和带参操纵符带参操纵符在头文件iomanip.h中说明无参操纵符在头文件iostream.h中说明

147.2预定义类型的输入输出

重载插入运算符(输出运算符)

ostream&operator<<(ostream&out,user_name&obj)

{

out<<obj.item1;out<<obj.item2;

……

out<<obj.itemn;

returnout;

}157.3用户自定义类型的输入输出

重载提取运算符(输入运算符)

istream&operator>>(istream&in,user_name&obj)

{

in>>obj.item1;in>>obj.item2;

……in>>obj.itemn;

returnin;

}167.3用户自定义类型的输入输出C++把文件看做字符序列,即文件是由一个一个字符数据顺序组成的。根据数据的组织形式,文件可分为:文本文件(ASCII文件):每个字节存放一个ASCII代码,代表一个字符;二进制文件:把内存中的数据,按其在内存中的存储形式原样写到磁盘上存放;文件操作包括打开文件、读写文件和关闭文件。177.4文件的输入输出

在C++中,要进行文件的输入输出,必须首先创建一个流对象,然后将这个流对象与文件相关联,即打开文件,此时才能进行读写操作,读写操作完成后再关闭这个文件。含有文件操作的程序中,必须包含头文件fstream.h;文件的打开和关闭通过使用fstream类的成员函数open和close来实现。187.4.1文件的打开与关闭fstream.h中提供的三个流类:ifstream:输入文件流类,用于文件的输入;ofstream:输出文件流类,用于文件的输出;fstream:输入输出文件流类,用于文件的输入/输出;一旦文件打开,即可用<<和>>读写文件中的数据,只是必须用于文件相联系的流代替cin和cout。197.4.1文件的打开与关闭[1]文件的打开:使用成员函数open();文件流对象.open(文件名,打开方式);文件打开方式:207.4.1文件的打开与关闭217.4.1文件的打开与关闭[2]文件的关闭:使用成员函数close();在文件操作结束时应及时调用成员函数close()来关闭文件。如:out.close();将关闭与流out相联系的文件。[3]文件的读写文本文件的读写二进制文件的读写:get、put、read、write二进制文件的随机读写:seekp、seekg227.4.1文件的打开与关闭命名空间:一个由程序设计者命名的内存区域;程序设计者可以根据需要指定一些有名字的命名空间,将各命名空间中声明的标识符与该命名空间标识符建立关联,保证不同命名空间的同名标识符不发生冲突。如:namespaceNS

{inti=5,j=10;}237.5命名空间和头文件命名规则C++中命名空间的作用类似于操作系统中的目录和文件的关系;用户可以声明自己的命名空间,C++还定义了一个标准命名空间std,标准C++库中的所有标识符都是在这个名为std的命名空间中定义的,或者说标准头文件中的函数、类、对象和类模板都是在命名空间std中定义的;247.5命名空间和头文件命名规则头文件命名规则:C++程序中,如果使用带后缀“.h”的头文件,不必用命名空间;使用C++中不带后缀的头文件时,需要在程序中声明命名空间std;近年来推出的C++编译系统新版本则采用了C++的新方法,头文件不再有后缀“.h”;257.5命名空间和头文件命名规则头文件命名规则:

温馨提示

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

评论

0/150

提交评论