- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设教程第14章IO流
第14章 I/O流 14.1 C++流的概念 14.2 格式化I/O 14.3 检测流操作的错误 14.4 文件流 14.5 字符串流 C语言中没有提供专门的输入输出语句,同样,C++语言中也没有专门的输入/输出(I/O)语句,C++中的I/O操作是通过一组标准I/O函数和I/O流来实现的。C++的标准I/O函数是从C语言继承而来的,同时对C语言的标准I/O函数进行了扩充。C++的I/O流不仅拥有标准I/O函数的功能,而且比标准I/O函数功能更强、更方便、更可靠。 14.1 C++流的概念 在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O,对在外存磁盘上文件的输入输出简称为文件I/O,对内存中指定的字符串存储空间的输入输出简称为串I/O。 C++中把数据之间的传输操作称作流。在C++中,流既可以表示数据从内存传送到某个载体或设备中,即输出流;也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。在进行I/O操作时,首先打开操作,使流和文件发生联系,建立联系后的文件才允许数据流入或流出,输入或输出结束后,使用关闭操作使文件与流断开联系。 C++为实现数据的输入和输出定义了一个庞大的类库,它包括的类主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream,strstream等。其中ios为根基类,它直接派生四个类:输入流类istream、输出流类ostream、文件流基类fstreambase和字符串流基类strstreambase。输入文件流类同时继承了输入流类和文件流基类(当然对于根基类是间接继承),输出文件流类ofstream同时继承了输出流类和文件流基类,输入字符串流类istrstream同时继承了输入流类和字符串流基类,输出字符串流类ostrstream同时继承了输出流类和字符串流基类,输入输出流类iostream同时继承了输入流类和输出流类,输入输出文件流类fstream同时继承了输入输出流类和文件流基类,输入输出字符串流类strstream同时继承了输入输出流类和字符串流基类。 C++系统中的I/O类库,其所有类被包含在iostream.h,fstream.h和strstrea.h这三个系统头文件中,各头文件包含的类如下: iostream.h包含有:ios, iostream, istream, ostream, iostream_withassign, istream_withassign, ostream_withassign等。 fstream.h包含有:fstream, ifstream, ofstream和fstreambase,以及iostream.h中的所有类。 strstrea.h包含有:strstream, istrstream, ostrstream和strstreambase,以及iostream.h中的所有类。 在一个程序或一个编译单元(即一个程序文件)中当需要进行标准I/O操作时,则必须包含头文件iostream.h,当需要进行文件I/O操作时,则必须包含头文件fstream.h,同样,当需要进行串I/O操作时,则必须包含头文件strstrea.h。在一个程序或编译单元中包含一个头文件的命令格式为“#include头文件名”,当然若头文件是用户建立的,则头文件名的两侧不是使用尖括号,而是使用双引号。当系统编译一个C++文件对#include命令进行处理时,是把该命令中指定的文件中的全部内容嵌入到该命令的位置,然后再编译整个C++文件生成相应的目标代码文件。 C++不仅定义有现成的I/O类库供用户使用,而且还为用户进行标准I/O操作定义了四个类对象,它们分别是cin,cout,cerr和clog,其中cin为istream_withassign流类的对象,代表标准输入设备键盘,也称为cin流或标准输入流,后三个为ostream_withassign流类的对象,cout代表标准输出设备显示器,也称为cout流或标准输出流,cerr和clog含义相同,均代表错误信息输出设备显示器。因此当进行键盘输入时使用cin流,当进行显示器输出时使用cout流,当进行错误信息输出时使用cerr或clog。 C++的流通过重载运算符“”和“”执行输入和输出操作。输出操作是向流中插入一个字符序列,因此,在流操作中,将运算符“”
文档评论(0)