所以我可以将像棋子这样的unicode字符直接复制到终端(我使用debian jessie linux),但每当我编写c ++代码时,我都会这样做�而不是 这是我的代码
enter code here
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
setlocale(LC_ALL,"");
wchar_t piece='♗';
wcout<<piece;
}
我尝试使用字符的十六进制或十进制代码,但它不起作用 我也使用vim进行编辑,它确实会在我输入时显示字符。
答案 0 :(得分:1)
没有规定wchar_t应该使用什么编码。我需要使用mbstowcs函数来转换该字符。像这样,例如:
#include <iostream>
#include <clocale>
#include <cstdlib>
using namespace std;
int main(void) {
setlocale(LC_ALL, "");
wchar_t piece;
mbstowcs(&piece, "♗", 1);
wcout << piece << endl;
return 0;
}
假设您的源文件编码与您的语言环境的编码匹配。
答案 1 :(得分:0)
奇怪的是,正常情况下,将特殊字符放入字符串中它非常简单,我甚至没想过要使用它。
#include<iostream>
using namespace std;
int main()
{
string piece="♗";
cout<<piece;
}