如何在 char 变量中存储特殊的 unicode 字符 (c++)
How can I store special unicode characters in a char variable (c++)
我正在编写一个c++程序,其中我需要存储一个特殊ASCII字符的值(eg:-'①','╳','▲'等)在字符变量中,如 :
#include <iostream>
using namespace std;
int main(void)
{
char a = '①';//here...
cout << a;
return 0;
}
...它会抛出错误
warning: multi-character character constant [-Wmultichar]
和
warning: overflow in implicit constant conversion [-Woverflow]
有什么办法吗???
你必须使用宽字符数据类型,因为它可以存储 ASCII 以及 C++ 中的非 ASCII 字符,用 wchar_t
表示。
#include<iostream>
using namespace std;
int main()
{
wchar_t a = L'';
wcout << a;
return 0;
}
如上所示,笑脸字符存储在a
中。由于它涉及宽字符,要将其显示到控制台,我必须使用 std::wcout
。同样,std::wcin
是 std::cin
的宽字符替代项,std::wstring
是 std::string
的替代项。
L
前缀用来表示宽字符和宽字符串。这里用来告诉编译器这是一个宽字符。
我正在编写一个c++程序,其中我需要存储一个特殊ASCII字符的值(eg:-'①','╳','▲'等)在字符变量中,如 :
#include <iostream>
using namespace std;
int main(void)
{
char a = '①';//here...
cout << a;
return 0;
}
...它会抛出错误
warning: multi-character character constant [-Wmultichar]
和
warning: overflow in implicit constant conversion [-Woverflow]
有什么办法吗???
你必须使用宽字符数据类型,因为它可以存储 ASCII 以及 C++ 中的非 ASCII 字符,用 wchar_t
表示。
#include<iostream>
using namespace std;
int main()
{
wchar_t a = L'';
wcout << a;
return 0;
}
如上所示,笑脸字符存储在a
中。由于它涉及宽字符,要将其显示到控制台,我必须使用 std::wcout
。同样,std::wcin
是 std::cin
的宽字符替代项,std::wstring
是 std::string
的替代项。
L
前缀用来表示宽字符和宽字符串。这里用来告诉编译器这是一个宽字符。