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

猜你喜欢

转载自blog.csdn.net/shuoyueqishilove/article/details/77131638