stringstream类的使用
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
(1)stringstream进行单词切分,以空格为分界符,类似于Java的split()函数
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
//通过stringstream 进行单词切分
string str = "I am very happy!";
stringstream sstr(str);
string temp;
while (sstr >> temp)
cout << temp << endl;
return 0;
}
(2)stringstream进行int(或其他内置类型)与string类型的转换
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
//string转int
string str = "123 12.3";
int a;
float b;
stringstream sstr(str);
sstr >> a;
sstr >> b;
cout << "a: " << a << endl;
cout << "b: " << b << endl;
//int转string
stringstream sstr1;
int c = 100;
string s;
sstr1 << c;
sstr1 >> s;
cout << "string s: " << s << endl;
return 0;
}
(3)
重复利用stringstream对象
如果你打算在多次转换中使用同一个stringstream对象,记住在每次转换前要使用clear()方法;
在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的构造和析构函数通常是非常耗费CPU时间的。