读书人

请教怎么将string转化为baisc_istream

发布时间: 2013-03-28 10:20:24 作者: rapoo

请问如何将string转化为baisc_istream 流
void read_xml(basic_istream &,Ptree &pt)
我想要调用这个函数。其中一个参数是basic_istream &,

我想把string转换为这个类型的,这个应该怎么搞啊
[解决办法]
可以用istringstream读入string的值,然后传给basic_istream
[解决办法]
看了#1,感觉我理解错了,如果你是要直接解析xml字符串,可以这样:


int main()
{
try
{
using namespace boost::property_tree;
string test_str = "<root>haha</root>";
stringstream ss(test_str);
ptree pt;
read_xml(ss, pt);
ptree& root = pt.front().second;
cout << root.data() << endl; // 输出haha
}
catch (std::exception& e)
{
cerr << e.what() << endl;
}

return 0;
}

[解决办法]
void read_xml(istringstream(str), pt);
这样调用即可
istringstream(str)会用str初始化生成一个istringstream字符串流
istringstream是istream(basic_istream<char>)的派生类

读书人网 >C++

热点推荐