【问题标题】:print hexadecimal with capital letters用大写字母打印十六进制
【发布时间】:2017-10-18 15:33:33
【问题描述】:

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

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

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

【问题讨论】:

  • 使用大写 X 而不是小写 x
  • "%x""%X"做实验...
  • 使用大写 %X
  • ...注意 %x%X 期望参数是 unsigned int

标签: c unicode hex printf widechar


【解决方案1】:

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

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

谢谢,Weather VaneSome programmer dudeFelix Palmen

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多