一直以来都很排斥使用stream流来解决问题,直到有一天突然使用了一下,发现真的超级简单。不多BB。
比如,我需要解析一串XMl节点路径"/a/b/c/d",现在我肯定首先要解析出每一个结点的名字,就是分别把a,b,c,d存在vector中
或者数组中,不用流你会怎么做?还是比较费功夫的,如果使用流的话,请看下面的代码。
vector<string> XmlInterface::PrasePath(char *src, int *depth)
{
vector<string> des;
string str = src;
istringstream ss(str);
string token;
int i = 0;
while (getline(ss, token, '/'))
{
if (i != 0){
des.push_back(token.c_str());
//strcpy(des[i-1], token.c_str());
//cout << des[i-1] << " ";
}
i++;
}
*depth = i - 1;
return des;
}
是不是非常简单?
再看一个例子,比如我想转换类型,在for循环中把int转成string,看一下代码,多么简单
stringstream ss;
string path;
string str;
for(int i = 3;i<8;i++)
{
ss.clear();
ss<<i;
ss>>str;
}
非常的方便!