当我尝试这个时:
#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
。
答案 0 :(得分:4)
您提供给printf
的格式字符串仅为
"key=%" PRIx64
所有其余的都是格式字符串的参数,因为格式字符串只包含一个转换说明符,第一个参数被打印,其余的被丢弃。
我想你想要的。
printf("key=%" PRIx64 "\t\n %" PRIx64 "\n", key, key);
请注意格式字符串中缺少逗号。