使用C ++中std::uint64_t
系列的函数来打印<cstdint>
类型(来自std::printf()
)的值的格式说明符是什么?
C99具有PRIu64
(来自<inttypes.h>
),但我不确定PRIu64
是有效的C ++ 11,尽管我可以找到暗示。 >
在没有PRIu64
的情况下,据我所知,没有一种适用于所有情况的格式说明符:
std::uint64_t
将被定义为unsigned long long
,格式说明符将是%llu
。std::uint64_t
将被定义为unsigned long
,格式说明符将是%lu
。%llu
在两种情况下均有效。答案 0 :(得分:12)
PRIu64
仍然是C ++中要使用的语言。每个[cinttypes.syn] PRIu64
[...]
#define PRIuN see below
[...]
头文件
<cinttypes>
的内容和含义与C标准库头文件<inttypes.h>
[...]
因此它存在并且具有与C ISO / IEC 9899:2011标准相同的行为。