首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> 语言基础 >> 正文
C++的iostream标准库介绍(4)
作者:管宁    文章来源:PConline    更新时间:2006-5-30 15:10:22
我们在简单介绍过ofstream类和ifstream类后,我们再来看一下fstream类,fstream类是由iostream派生而来,fstream类对象可以同对文件进行读写操作。

  示例代码如下:

//程序作者:管宁 
//站点:www.cndev-lab.com 
//所有稿件均有版权,如要转载,请务必著名出处和作者 
#include <iostream
#include <fstream
using namespace std; 
int main()  

    fstream myfile; 
    myfile.open("c:\\1.txt",ios::out|ios::app,0); 
    if(!myfile) 
    { 
        cout<<"文件写错误,文件属性可能为只读!"<<endl; 
        system("pause"); 
        exit(1); 
    } 
    myfile<<"中国软件开发实验室"<<endl<<"网址:"<<"www.cndev-lab.com"<<endl;   
    myfile.close(); 
 
    myfile.open("c:\\1.txt",ios::in,0); 
    if(!myfile) 
    { 
        cout<<"文件读错误,文件可能丢失!"<<endl; 
        system("pause"); 
        exit(1); 
    } 
    char ch; 
    while(myfile.get(ch)) 
    { 
        cout.put(ch); 
    } 
    myfile.close(); 
    system("pause"); 
}

  由于fstream类可以对文件同时进行读写操作,所以对它的对象进行初始话的时候一定要显式的指定mode和openprot参数。

  接下来我们来学习一下串流类的基础知识,什么叫串流类
  简单的理解就是能够控制字符串类型对象进行输入输出的类,C++不光可以支持C++风格的字符串流控制,还可以支持C风格的字符串流控制。

  我们先看看看C++是如何对C风格的字符串流进行控制的,C中的字符串其实也就是字符数组,字符数组内的数据在内存中的位置的排列是连续的,我们通常用char str[size]或者char *str的方式声明创建C风格字符数组,为了能让字符数组作为设备并提供输入输出操作,C++引入了ostrstream、istrstream、strstream这三个类,要使用他们创建对象就必须包含strstream.h头文件。
  istrstream类用于执行C风格的串流的输入操作,也就是以字符串数组作为输入设备。
  ostrstream类用于执行C风格的串流的输出操作,也就是一字符串数组作为输出设备。
  strstream类同时可以支持C风格的串流的输入输出操作。

  istrstream类是从istream(输入流类)和strstreambase(字符串流基类)派生而来,ostrstream是从ostream(输出流类)和strstreambase(字符串流基类)派生而来,strstream则是从iostream(输入输出流类)和和strstreambase(字符串流基类)派生而来。

  他们的继承关系如下图所示:

  串流同样不是标准设备,不会有预先定义好的全局对象,所以不能直接操作,需要通过构造函数创建对象。

相关文章:
C++的iostream标准库介绍(9)
C++的iostream标准库介绍(3)
C++的iostream标准库介绍(2)
C++运算符重载赋值运算符
C++面向对象编程入门:实例详解C++友元(3)
C++面向对象编程入门:实例详解C++友元(2)
C++面向对象编程入门:实例详解C++友元(1)
C++面向对象编程入门:C++类对象的复制-C++类静态数据成员与类静态成员函数(1)
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号