【发布时间】:2012-10-11 08:32:04
【问题描述】:
我正在阅读这本书:C: In a Nutshell,在阅读了关于宽字符的字符集部分之后,我编写了这个程序: p>
#include <stdio.h>
#include <stddef.h>
#include <wchar.h>
int main() {
wchar_t wc = '\x3b1';
wprintf(L"%lc\n", wc);
return 0;
}
然后我使用 gcc 编译它,但 gcc 给了我这个警告:
main.c:7:15: 警告:十六进制转义序列超出范围[默认启用]
而且程序没有输出字符α(其unicode为U+03B1),这正是我想要它做的。
如何更改程序以打印字符 α?
【问题讨论】:
-
wchar_t wc = L'\x03b1';消除了警告,尽管它仍然不打印 alpha。 -
我真正想要的不是消除警告,而是得到正确的答案。 :-(
-
您要打印到哪里?如果是终端,您的终端设置转换的编码是什么?