sponsored links

C++中的I/O流类库与输入输出简述

(1)如C语言一样,C++语言中也没有输入输出语句。但C++编译系统带有一个面向对象的输入输出软件包,即I/O流类库

(2)在C++中,将数据从一个对象到另一个对象的流动抽象为‘流’。流是一种抽象,它负责在数据的生产者和消费者之间建立联系,并管理数据的流动。程序建立一个流对象,并制定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。

(3)I/O流类库中头文件<iostream>声明了8个预定义的流对象用来完成在标准设备上的输入输出操作:cin、cout、cerr、clog、wcin、wcout、wcerr、wclog。

(4)插入运算符(<<)和提取运算符(>>)是所有标准C++数据类型预先设计的,用于传送字节到一个输出流对象或从一个输入流对象提取字节。它们与预先定义的操纵符一起工作,可以控制输出格式。这些操纵符大多定义在ios_base类中和<iomanip>头文件中。

(5)要使用一个输出文件流,必须在构造函数或open函数中把该流与一个特定的磁盘文件关联起来。虽然ofstream析构函数会自动完成关闭,但如果需要在同一流对象上打开另外的文件,就需要用close函数。

(6)put函数把一个字符写到输出流中。write函数把一个内存块中一块内容写到一个输出文件流中,长度参数指出写的字节数。write函数遇到空字符时不停止,故可以写入完整的内结构,该函数带有两个参数:一个char指针(指向内存数据的起始地址)和一个所写的字节数,在该结构对象的地址之前需要char*做强制类型转换。

(7)错误处理函数:bad、fail、good、eof、clear、rdstate。

(8)输入流中的get函数从一个输入流中提取一个字符,它在读入数据时包括空白运算符,而提取运算符(>>)在默认情况下拒绝接受空白字符。While((charch=cin.get())!=EOF)当输入“CTRL+Z”并回车时,程序读入的值为EOF,程序读入结束。getline函数允许从输入流中提取多个字符,并允许指定终止字符(默认是换行字符),在读取完成后,从读取的内容中删除该终止符。read函数从一个文件读字节到一个指定的存储器区域,有长度参数确定要读的字节数。tellg函数返回当前文件读指针的位置,这个值是streampos类型。在输入文件流中,保留着一个指向文件中下一个将读数据的位置的内部指针,可以用Seekg函数来设置这个指针。

(9)一个iostream对象可以是数据的源或目的。常用iostream的派生流类fstream和stringstream。

参考资料:《C++语言程序设计》郑莉 张瑞丰

Tags: