如何在uint64_t(C)中打印空间

时间:2014-07-29 06:45:17

标签: c printf uint64

当我尝试这个时:

#include <stdio.h>
#include <inttypes.h>

int main (int argc, char **argv)
{
  uint64_t key = 0xf0000000ffffffff;

  printf ("key=%" PRIx64, key, "\t\n  %" PRIx64, "\n", key);
}

打印key=f0000000ffffffff;所有空格都被删除了。我该如何打印?我正在使用gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

1 个答案:

答案 0 :(得分:4)

您提供给printf的格式字符串仅为

"key=%" PRIx64

所有其余的都是格式字符串的参数,因为格式字符串只包含一个转换说明符,第一个参数被打印,其余的被丢弃。

我想你想要的。

printf("key=%" PRIx64 "\t\n  %" PRIx64 "\n", key, key);

请注意格式字符串中缺少逗号。