c++ - 如何在 C++ 中使用字符的 ascii 代码创建 std::wstring?

标签 c++ string ascii wstring

我需要使用具有以下 ascii 值的字符创建一个 wstring:30、29、28、27、26、25。

在 VB6 中,我会做 asc(30) + asc(29)+ 等...

什么是 C++ 等价物?

谢谢!

最佳答案

这是关于字符集转换的技巧问题吗? :) 因为该标准不保证 ASCII 字符由其在 wchar_t 中的 ASCII 整数值表示(即使对于大多数编译器/系统而言,这也是正确的)。如果重要,请使用适当的语言环境明确扩大您的字符:

std::wstring s;
std::locale loc("C"); // pick a locale with ASCII encoding

s.push_back(std::use_facet<std::ctype<wchar_t> >(loc).widen(30));
s.push_back(std::use_facet<std::ctype<wchar_t> >(loc).widen(29));
s.push_back(std::use_facet<std::ctype<wchar_t> >(loc).widen(28));

不要以尾随 0 结尾,它是在您通过调用 .c_str() 将 wstring 转换为 wchar_t * 时添加的

关于c++ - 如何在 C++ 中使用字符的 ascii 代码创建 std::wstring?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459445/

相关文章:

Java Applet - 将文件转换为字符串

ascii - 256对于ascii表中的128个唯一字符意味着什么

c++ - 如何用非平凡的初始值填充 vector ?

c++ - LL 是什么意思?

c++ - 如何从 QListView 的 SIGNAL/SLOT 传递/检索参数?

c++ - 我应该使用字符串还是 char[]?

c++ - g++ 是否不从它存在的第一个包含路径中获取头文件?

string - 如何正确解析包含自定义数据(语义版本控制数据)的字符串?

python - 使用 Python 的人类可读二进制数据

c - 在 C 中显示 ASCII 代码