码迷,mamicode.com
首页 > 编程语言 > 详细

坚持c++,真正掌握c++(2)

时间:2014-06-07 14:40:59      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:面向对象   计算机   c++   输入输出   

在c++中对c中的输入输出进行了扩展,采用了面向对象的设计方法设计了c++中的输入输出(IO)。输入输出按照操作的对象分类可分为:1. 标准IO(对计算机的键盘或者显示器进行读写操作);2. 文件IO(对计算机中的文件进行读写操作);3. 串IO(对内存中的字符串进行读写格式化操作);

以上三种读写分别存在于头文件iostream,fstream,strstream中。

我们经常称输入输出为输入输出流,之所以称为流,流是内存中连续的以字节为单位的空间,从源流向目的地。流具有状态和对应的操作,流的状态的访问可以使用bad,fail,eof和good操作来完成,clear和setstate操作可以用于改变流的状态。

每个IO对象都会管理一个缓冲区,用于存储读写的数据,缓冲区会在特定的一些情况下被刷新:(1)程序结束(2)缓冲区满了,在写入下一个值时会被刷新(3)显示的刷新,例如endl(4)每次完成输入输出时,用unitbuf操纵符设置流的内部状态(5)输入输出流关联;

在程序设计中,我们会遇到对多个文件的读写的问题:

string add[4]={"1.dat","2.dat","3.dat","4.dat"};
for(int i=0;i<4;i++)
{
     ifstream fin(add[i].c_str());
     ......
}
以上代码可以对fin不做close操作,也可以顺利完成读文件,因为在while循环中要重新定义fin,所以每次定义的fin对象流的状态都是好的。

以上的程序也可以直接使用一个流对象完成,即将fin的定义移动到while循环的外面,这样读文件的话每次在打开新的文件前要首先关闭文件流,如果不是直接读数据的个数的话而是直到读到文件的尾部,则需要在close之后对文件流对象的状态进行clear才可以。


坚持c++,真正掌握c++(2),布布扣,bubuko.com

坚持c++,真正掌握c++(2)

标签:面向对象   计算机   c++   输入输出   

原文地址:http://blog.csdn.net/daida2008/article/details/28595463

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!