gpt4 book ai didi

c++ - 如何将整数转换为 std::u16string (C++11)?

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

没有方法 std::to_u16string(...)。显然 static_cast 似乎不是进行此类转换的最合适方法。

对于相反的转换,从 stringint,可以使用函数 std::stoi() 定义转换器,但是从 intu16string 它不工作。

我尝试了以下方法:

int i = 1234;
std::u16string s;

std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert;
s = convert.from_bytes(std::to_string(i));

std::cout << s.str() << " (" << s.length() << ")" << std::endl;

我也试过这样做:

typedef std::basic_stringstream<char16_t> u16ss;
u16ss ss;
ss << 1234;
std::u16string s = ss.str();

但它不起作用。

有没有办法直接进行这种转换,还是必须经过一些中间转换?

最佳答案

您可以尝试以下方法:

std::u16string to_u16string(int const &i) {
std::wstring_convert<std::codecvt_utf8_utf16<char16_t, 0x10ffff, std::little_endian>, char16_t> conv;
return conv.from_bytes(std::to_string(i));
}

Live Demo

关于c++ - 如何将整数转换为 std::u16string (C++11)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211134/

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