在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才干够。

随机推荐

  1. Git关联远程GitHub仓库

    一.本地安装GIT版本控制软件 二.配置Git,设置用户信息 git config --global user.name "jack" git config --global us ...

  2. [我的疑问]String? = "Skiy Chan" 中的问号是什么意思?

    var optionalName : String? = "Skiy Chan" String? = "Skiy Chan" 中的问号是什么意思?目前还在看ap ...

  3. php对象与数组互转

    //对象转数组 function objectToArray($obj){ $arr = is_object($obj) ? get_object_vars($obj) : $obj; if(is_a ...

  4. Linux内核监控模块-0-开篇简介

    最近做了一个关于Linux内核编程的项目,主要实现的功能是对文件系统的监控. 我采用的方式是将监控的功能做成一个可加载模块(LKM)的形式,动态加载到Linux内核中.在这个内核层的“监控模块”中,我 ...

  5. http server v0.1_http_webapp.c

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  6. django中的事务管理

    在讲解之前首先来了解一下数据库中的事务. 什么是数据库中的事务? 热心网友回答: ():事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不 ...

  7. python获取本地ip地址的方法

    #_*_coding:utf8_*_ #以下两种方法可以在ubuntu下或者windows下获得本地的IP地址 import socket # 方法一 localIP = socket.gethost ...

  8. uva 10496 Collecting Beepers

    一个简单的货郎担问题,用状态压缩dp可以解决: 解法: d(i,S)=min{d(j,S-{j})+dis(i,j) | j belongs to S}; 边界条件:d(i,{})=dis(0,i). ...

  9. node 与php整合

    http://wenku.baidu.com/view/c1810c18b7360b4c2e3f6479.html http://www.xiaocai.name/post/cf1f9_7b6507 ...

  10. 《深度探索c++对象模型》chapter2 构造函数语义学

    关于c++,最常听到的一个抱怨是,编译器背着程序员做了太多事情,conversion运算符是最常被引用的一个例子:jerry schwarz,iostream函数库的建筑师,就曾经说过一个故事,他说他 ...