boqing的专栏

知识在于积累

使用(C++库)istringstream输入(格式化)

 

转自:

http://dev.csdn.net/article/77/77033.shtm

http://www.chinaitpower.com/A/2002-04-21/20488.html

    C++引入了ostringstreamistringstreamstringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。

 

  istringstream类用于执行C++风格的串流的输入操作。
  stringstream类同时可以支持C++风格的串流的输入输出操作。

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

 

 

 

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

#include <iostream>
#include 
<sstream>
#include 
<string>
using namespace std;

void test()
...{
    
...{
        
//istringstream iss;
        
//iss.str("#123 1.23 aaa ,zzz kk,k oo.jjj");
        istringstream iss("#123 1.23 aaa ,zzz kk,k oo.jjj");
        
        cout 
<< iss.str() << endl;

        
char ch;
        iss 
>> ch;
        cout 
<< ch << endl;

        
int i;
        iss 
>> i;
        cout 
<< i << endl;

        
float f;
        iss 
>> f;
        cout 
<< f << endl;

        
char buf[1024];
        iss 
>> buf;
        cout 
<< buf << endl;

        iss.ignore(
100',');
        iss 
>> buf;
        cout 
<< buf << endl;
    }

}


int main(int argc, char* argv[])
...{   
    test();
    
return 0;
}

 

  上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入"赋值"操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与浮点型对象的拆分转换过程。

 

 

 

  str()成员函数的使用可以让istringstream对象返回一个string字符串(例如本例中的输出操作(cout<<istr.str();)

 

 

 

阅读更多
个人分类: C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

使用(C++库)istringstream输入(格式化)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭