gpt4 book ai didi

c++ - 如何将 pugi::char_t* 转换为字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:21 26 4
gpt4 key购买 nike

嗨我正在使用 pugixml 来处理 xml 文档。我使用此构造遍历节点

 pugi::xml_node tools = doc.child("settings");

//[code_traverse_iter
for (pugi::xml_node_iterator it = tools.begin(); it != tools.end(); ++it)
{
//std::cout << "Tool:";
cout <<it->name();

}

问题是 it->name() 返回 pugi::char_t* 并且我需要将它转换成 std​​::string。是否可以 ??我在 pugixml 网站上找不到任何信息

最佳答案

According to the manual , pugi::char_tcharwchar_t,具体取决于您的库配置。这样您就可以在单字节(ASCII 或 UTF-8)和双字节(通常是 UTF-16/32)之间切换。

这意味着您无需将其更改为任何内容。但是,如果您使用的是 wchar_t* 变体,则必须使用匹配的流对象:

#ifdef PUGIXML_WCHAR_MODE
std::wcout << it->name();
#else
std::cout << it->name();
#endif

而且,既然你问了,从中构造一个 std::stringstd::wstring:

#ifdef PUGIXML_WCHAR_MODE
std::wstring str = it->name();
#else
std::string str = it->name();
#endif

或者,对于始终是 std::string(这很少是您想要的!):

#ifdef PUGIXML_WCHAR_MODE
std::string str = as_utf8(it->name());
#else
std::string str = it->name();
#endif

希望这对您有所帮助。

资料来源:“pugixml”文档的粗略浏览。

关于c++ - 如何将 pugi::char_t* 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6102698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com