- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 让数据到文本中去——文件的操作 程序运行时可以从键盘中获取要输入的信息然后显示到标准的输出设备上也可以从存储在磁盘上的文件获取输入数据,处理完成后然后在保存到磁盘上。C++编程语言提供了丰富文件信息的读入与输出方法,本章将着重介绍这些方法。 11.1 文件的概述 文件是计算机中一组数据的集合,凡是我们能都在计算机中看到的都称之为文件,文件可以分为文本文档、图片、程序等等。 在计算机中,文件通常存储在计算机的磁盘上。在使用时通过它所在的路径和文件名导入内存,然后再对文件进行各种处理,处理完成后将文件信息在按照文件路径和文件名称将文件保存到计算机的磁盘中。在使用C++进行编程时,C++已经对文件的处理做了大量的工作,程序员只需要利用C++提供的文件处理的方法来进行文件的处理即可。 11.2 I/O流的描述 C++中的I/O是以流的形式出现现的,流是一个处于传输传输状态的字符序列,流的操作有输入和输出,输入操作是指字符从外部设备输入到内存,输出操作时指字符从内存输出到外部设备。 在C++中,I/O流类的模板是库的基础,类模板可以被实例化成窄字符和宽字符。 11.3 文件的打开模式 在C语言中,文件的打开模式有很多种,不同的打开放式可以对文件进行不同的出处理,同样C++语言继承了C语言的特点,在打开一个文件时也设计了不同的打开方式,C++编程人员在进行编程时可以根据自己的需要来选择不同的文件打开方式。 11.4 打开一个文件 在C语言中,打开一个文件时要用到fopen函数,同样在C++中可以利用库函数进行打开文件,在使用C++中的文件打开函数时必须在源文件的头部包含头文件fstream.h或者fstream。fstream.h是iostream.h的一个扩展集,在标准的C++中iostream.h 已经被fstream.h包含了,并且提供了所有输入与输出的函数,所以在实际使用的时候如果代码中已经包含了fstream.h就可以不用在包含iostream.h头文件了。 在打开一个文件时,既可以用读的方式来打开一个文件也可以用写的方式来打开一个文件,以写的方式打开文件用ofstream来声明一个对象,以读的方式打开文件用ifstream来声明一个对象,文件输入输出函数都是从标准输入输出函数继承而来,它们之间的继承关系如图所示。 11.4 打开一个文件 11.5 向文件中写入数据 上一节中主要介绍了文件的打开方式,在本节中将介绍向文件中进行写入数据的方法。 11.5.1 文本文件的写入方法 “”运算符,“”跟标准输入与输出的功能一样,不同的地方是在标准输入输出中是向标准输出设备中输出数据,而在文件处理中输出设备是文件。例如: 【实例11-3】用“”向文件中输出数据。 #include fstream.h int main() { ofstream ifile;//(in.txt); ifile.open(in.txt); if(ifile) { coutokendl; } ifile从零开始学C++; ifile.close(); return 0; } 11.5.2 二进制文件的写入方法 使用二进制的方式进行写入文件时文件的打开方式必须是ios::binary形式,然后使用write方法向文件中写入文件信息。write方法的原型为: ostream write( const char *buffer, streamsize num ); write方法的功能是将缓冲区buffer中的字符串信息输入到输出流中去。num是输出到输出流中的字符的长度。 11.5.3 将结构体数据写入到文件 在上面的实例中都是将一行或一个字符信息写入到文件中,下面通过一个实例来演示一下将一个用户自己定义的结构体数据写入到文件中。 11.6 从文件中读出数据 文件的写入与读取是两个相反的操作,上节中介绍了向文件中写入数据的方法,在本节中将着重介绍如何从文件中来获取文件中的内容,并将其输出到标准输入输出设备上。 11.6.1 get()方法 get()方法从文件中获取单个的字符信息直到到了文件末尾为止。 11.6.2 getline()方法 getline()方法是获取文件里面一行信息的内容,直到文件结束或人为的结束文件读取功能为止,getline()的具体使用方法如实例所示。 11.6.3 rdbuf()方法 利用rdbuf()方法可以实现流的重定向功能,例如要实现上面把文件里面的信息输出到标准输入输出设备上还可以使用下面的方法。具体如实例11-9所示。 【实例11-9】rebuf()使用方法。 #include fstream.h int main(){ ifstream infile(i
原创力文档


文档评论(0)