istringstream用法

istringstream的構造函數原形如下:
istringstream::istringstream(string str);
例子1:

    #include <iostream>  
    #include <sstream>  

    using namespace std;  

    int main()  
    {  
        istringstream istr;  
        istr.str("1 56.7");  
        //上述兩個過程可以簡單寫成 istringstream istr("1 56.7");  
        cout << istr.str() << endl;  
        int a;  
        float b;  
        istr >> a;  //輸入以空格分隔  
        cout << a << endl;  
        istr >> b;  
        cout << b << endl;  
        return 0;  
    }  

以上只能使用空格作爲分隔符分隔字符串,若是遇到想要以其他分隔符分隔字符串時則不能實現,如:

string st = "Enter,the,name,of,an,existing,text,file:";
istringstream stream(st);

現在想要以“,”分隔字符串,以上方法不能實現;可以使用get()函數來實現,下面是我在論壇上看到的大神的方法:

        int length;
        string st = "Enter,the,name,of,an,existing,text,file:";
        istringstream stream(st);
        int i = 0;
        char array[20] = { 0 };
        while (stream.get(array, 20, ','))
        {
            length = stream.tellg();
            cout << array << endl;
            stream.seekg(length + 1, ios::beg);
        }

運行結果爲:
Enter
the
name
of
an
existing
text
file
僅供參考。
參考博客:
http://blog.csdn.net/marelin/article/details/22663291
http://bbs.csdn.net/topics/360194050

發佈了59 篇原創文章 · 獲贊 220 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章