J. *_*bal 7 c++ string casting c++11
没有方法std::to_u16string(...)。显然static_cast,这似乎不是进行这种转换的最合适的方法。
对于相反的转换, from stringto int,可以使用函数定义转换器std::stoi(),但是 from inttou16string它不起作用。
我尝试了以下方法:
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;
Run Code Online (Sandbox Code Playgroud)
我也尝试这样做:
typedef std::basic_stringstream<char16_t> u16ss;
u16ss ss;
ss << 1234;
std::u16string s = ss.str();
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
有没有办法直接进行这种转换,还是必须有一些中间转换?
您可以尝试以下操作:
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));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |