我正在尝试将„
符号push_back()
到std::vector<char>
。
我一直收到一个错误:
对于封闭的字符文字类型,
字符太大
void CharVect (std::vector<char>&temp)
{
temp.push_back('-');
temp.push_back(',');
temp.push_back('.');
temp.push_back('?');
temp.push_back('!');
temp.push_back(':');
temp.push_back(';');
temp.push_back('(');
temp.push_back(')');
temp.push_back('„'); // error
temp.push_back('”'); // error, but " works
temp.push_back('{');
temp.push_back('}');
temp.push_back('*');
temp.push_back('#');
}
发布于 2019-05-21 02:09:19
使用wchar_t
#include <vector>
void CharVect(std::vector<wchar_t> &temp)
{
temp.push_back(L'-');
temp.push_back(L',');
temp.push_back(L'.');
temp.push_back(L'?');
temp.push_back(L'!');
temp.push_back(L':');
temp.push_back(L';');
temp.push_back(L'(');
temp.push_back(L')');
temp.push_back(L'„'); // works
temp.push_back(L'”'); // works
temp.push_back(L'{');
temp.push_back(L'}');
temp.push_back(L'*');
temp.push_back(L'#');
}
或者,您可以考虑使用std::wstring
来存储宽字符。
作为Gem Taylor points out,如果需要处理扩展的表情符号,您可能需要考虑使用wchar32_t
。
https://stackoverflow.com/questions/56225788
复制相似问题