打印带大写字母的十六进制

print hexadecimal with capital letters

我正在尝试像这样打印宽字符的 Unicode 值:

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

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

猜猜这很简单,使用 %X 而不是 %x

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

谢谢, and and