C++的sstream标准库介绍

2007-12-10 20:28http://www.cppblog.com/tommyyan/archive/2006/08/18/8023.html



接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。



  istringstream类用于执行C++风格的串流的输入操作。 

ostringstream类用于执行C风格的串流的输出操作。 

strstream类同时可以支持C风格的串流的输入输出操作。



   istringstream类是从istream(输入流类)和stringstreambase(c++字符串流基类)派生而来, ostringstream是从ostream(输出流类)和stringstreambase(c++字符串流基类)派生而来, stringstream则是从iostream(输入输出流类)和和stringstreambase(c++字符串流基类)派生而来。



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








  istringstream是由一个string对象构造而来,istringstream类从一个string对象读取字符。 

istringstream的构造函数原形如下: 

istringstream::istringstream(string str);



//程序作者:管宁 

//站点:www.cndev-lab.com 

//所有稿件均有版权,如要转载,请务必著名出处和作者 

#include  

#include  

using namespace std; 

int main()   

{ 

istringstream istr; 

istr.str("1 56.7",); 

//上述两个过程可以简单写成 istringstream istr("1 56.7"); 

cout << istr.str()<>a; 

cout<>b; 

cout< 

#include  

#include  

using namespace std; 

int main()   

{ 

ostringstream ostr; 

//ostr.str("abc");//如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长 

ostr.put('d'); 

ostr.put('e'); 

ostr<<"fg"; 



string gstr = ostr.str(); 

cout< 

#include  

#include  

using namespace std; 



int main()   

{ 

     stringstream ostr("ccc"); 

     ostr.put('d'); 

     ostr.put('e'); 

     ostr<<"fg"; 

    string gstr = ostr.str(); 

    cout<>a; 

    cout< 

#include  

#include  

using namespace std; 



int main()   

{ 

     stringstream sstr; 

//--------int转string----------- 

    int a=100; 

    string str; 

     sstr<>str; 

    cout<>cname; 

    cout< 

using namespace std; 



int main()   

{ 

    int a; 

    cin>>a; 

    cout< 

using namespace std; 



int main()   

{ 

    int a; 

    cin>>a; 

    cout< 

using namespace std; 



int main()   

{ 

    int a; 

    cin>>a; 

    cout< 

using namespace std; 



int main()   

{ 

    int a; 

    while(1) 

     { 

        cin>>a; 

        if(!cin)//条件可改写为cin.fail() 

         { 

            cout<<"输入有错!请重新输入"< 

#include  

using namespace std; 



int main()   

{ 

     ifstream myfile("c://1.txt",ios_base::in,0); 

    if(myfile.fail()) 

     { 

        cout<<"文件读取失败或指定文件不存在!"<

你可能感兴趣的:(c/c++)