我一直在尝试使用boost的属性树解析XML文件,但每次我想获取字符串的值时都会抛出访问冲突异常。它对整数很好用,所以我有点困惑。 这是一些代码:
class Config
{
char * test;
int test2;
public:
Config();
};
Config::Config(void)
{
boost::property_tree::ptree pt;
boost::property_tree::xml_parser::read_xml("config.xml", pt);
try
{
test = pt.get<char*>("base.char");
test2 = pt.get<int>("base.int");
}
catch(std::exception e)
{
//something wasn't specified
}
}
XML文件:
<base>
<char>test</char>
<int>10</int>
</base>
首先我认为这是因为我没有为字符串分配空间,但malloc()和new char []都没有帮助。
任何帮助将不胜感激。在此先感谢:)
答案 0 :(得分:2)
根据this教程,我认为您需要使用std::string
代替char*
来获取字符串值。
因此,行test = pt.get<char*>("base.char");
将为test = pt.get<std::string>("base.char");
。 (假设您将test
的类型更改为std::string
)。