pugi::char_t* to const char*

pugi::char_t* to const char*

本文关键字:char to const pugi      更新时间:2023-10-16
SO

上有一些非常相似的问题:如何将 pugi::char_t* 转换为字符串

我一直在为这个问题而苦苦挣扎一段时间,作为初学者,除了在这里问之外,我真的不确定还能做什么,所以如果这算作重复,我很抱歉。

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() 的值存储在常量字符* 中,然后放入向量actor_db。

pugi::char_t 是一种字符或wchar_t的类型,具体取决于配置。我已经设置了它,以便 pugi::char_t 将是一个字符。

我知道这可能是一个简单的错误,但即使我进行了广泛的搜索和类似的 SO 问题,我仍然无法解决我的问题。

我希望 actor.child_value() 的值存储在常量字符* 中,然后放入向量actor_db。

不,你没有。唯一可以存储在const char*中是字符数组的位置。它实际上不是一个字符串,而是一个指向字符串的指针。指针容器充满了问题。

存储一个std::vector<std::string>,然后使用您链接到的问题的答案1 中的代码来获取std::string

1 奇怪的是,我刚刚注意到我几年前写的。 :D