在SO上有一些非常相似的问题: How to convert pugi::char_t* to string
我一直在努力解决这个问题,作为一个初学者,我真的不知道还有什么可以做的,除了在这里问,所以如果这是重复的话,我很抱歉。
pugi::xml_node actors = source_file.child("scene").child("actors");
std::vector<const char*> actor_db;
for (pugi::xml_node actor = actors.first_child(); actor; actor = actor.next_sibling())
{
const char *a = *actor.child_value();
actor_db[actor.attribute("id").as_int()] = a;
}
“pugi :: char_t”类型的值不能用于初始化“const char *”类型的实体
行const char * a = * actor.child_value();尝试将const char_t * xml_node :: child_value()的返回值强制转换为const char *是我的不良尝试。
我希望actor.child_value()的值存储在const char *中,然后放在vector actor的内部。
pugi :: char_t是char或wchar_t的类型,具体取决于配置。我已将其设置为pugi :: char_t将成为char。
我知道这可能是一个简单的错误,但即使我广泛搜索和类似的SO问题,我仍然无法解决我的问题。
答案 0 :(得分:0)
不,你不是。唯一可以存储的东西&#34;&#34; a我希望actor.child_value()的值存储在const char *中,然后放在vector actor的内部。
const char*
是一个字符数组的位置。它实际上不是一个字符串,而是一个指向字符串的指针。指针容器充满了问题。
存储std::vector<std::string>
,然后将答案 1 中的代码用于您链接的问题,以获取std::string
。
1 奇怪的是,我刚刚注意到我几年前曾写过的。 :d 子>