用大写字母打印十六进制

时间:2017-05-18 17:20:07

标签: c unicode hex printf widechar

我正在尝试打印宽字符的Unicode值,如下所示:

wchar_t w = '\u00A1';   // U+00A1 Inverted Exclamation Mark ¡
wprintf("U+%.4x",w);    // prints U+00a1

我希望输出为U+00A1而不是U+00a1。是否有printf说明符可以执行此操作,还是必须手动执行此操作?

1 个答案:

答案 0 :(得分:1)

猜猜这很简单,使用%X代替%x

wchar_t w = '\u00A1';   // U+00A1 Inverted Exclamation Mark ¡
wprintf("U+%.4x",w);    // prints U+00A1

谢谢,Weather VaneSome programmer dude以及Felix Palmen