0

我正在使用树莓派并尝试使用以下内容打印 unicode 字符:

测试.cpp:

#include<iostream>
using namespace std;
int main() {
    char a=L'\u1234';
    cout << a << endl;
    return 0;
}

当我使用 g++ 编译时,我收到以下警告:

test.cpp: In function "int main()":
test.cpp:4:9: warning: large integer implicitly truncated to unsigned type [-Woverflow]

输出是:

4

此外,这不在 GUI 中,如果相关的话,我的发行版是 raspbian wheezy。

4

3 回答 3

6
于 2015-09-05T12:51:51.557 回答
4

除非您的本机系统正在使用它,否则您必须先设置本地,然后才能使用它。

 setlocale(LC_CTYPE,"");

要打印搅拌使用wcout而不是cout.

#include<iostream>
#include <locale>

int main()
{
    setlocale(LC_CTYPE,"");
    wchar_t a=L'\u1234';
    std::wcout << a << std::endl;
    return 0;
}
于 2013-08-04T06:47:19.760 回答
3

您必须使用宽字符:

尝试:

#include<iostream>
using namespace std;

int main()
{
    wchar_t a = L'\u1234';
    wcout << a << endl;
}
于 2013-08-04T06:48:00.683 回答