在 C++11 中可移植地打印 std::uint64_t 变量的格式说明符

Format specifier to portably print std::uint64_t variable in C++11

使用 C++ 中 std::printf() 系列的函数打印类型 std::uint64_t(来自 <cstdint>)的值的格式说明符是什么?

C99 有 PRIu64(来自 <inttypes.h>),但我并不完全清楚 PRIu64 是有效的 C++11,尽管我可以找到它可能是的提示。

如果没有 PRIu64,据我所知,没有适用于所有情况的单一格式说明符:

PRIu64 仍然是您将在 C++ 中使用的内容。每 [cinttypes.syn] PRIu64

[...]

#define PRIuN see below

[...]

The contents and meaning of the header <cinttypes> are the same as the C standard library header <inttypes.h> [...]

因此它存在并且具有与 C ISO/IEC 9899:2011 标准中相同的行为。