我正在尝试使用TinyXml从属性值获取std :: string。 我唯一能得到的是const char * val,我找不到任何方法将const char *转换为std :: string。
所以两个可能的答案: 1.如何使用TinyXml获取属性的字符串? 2.如何将 const char * val转换为 string val。
这是我现在的代码:
TiXmlElement* data;
data->Attribute("some_name"); // return const char * which seems like unconvertible.
googeling后,我尝试了这个:
char * not_const= const_cast<char *> (data->Attribute("some_name"));
代码本身没有错误,但在编译和运行后,我得到了异常。
答案 0 :(得分:3)
std :: string有一个构造函数,它接受char const *。你不需要char *。
std::string str = data->Attribute("some_name");
但是,请注意std :: string不喜欢NULL值,所以不要给它任何。