c++ - 如何打印 uint64_t?失败,出现 : "spurious trailing ‘%’ in format"

标签 c++ c

我写了一个很简单的printf uint64_t的测试代码:

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

int main()
{
  uint64_t ui64 = 90;
  printf("test uint64_t : %" PRIu64 "\n", ui64);
  return 0;
}

我使用ubuntu 11.10(64位)和gcc 4.6.1版本编译,但是失败了:

main.cpp: In function ‘int main()’:
main.cpp:9:30: error: expected ‘)’ before ‘PRIu64’
main.cpp:9:47: warning: spurious trailing ‘%’ in format [-Wformat]

最佳答案

ISO C99 标准规定,这些宏只有在明确要求时才可以定义。

#define __STDC_FORMAT_MACROS
#include <inttypes.h>

... now PRIu64 will work

关于c++ - 如何打印 uint64_t?失败,出现 : "spurious trailing ‘%’ in format",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132399/

相关文章:

C++:为什么结构\类需要一个虚拟方法才能成为多态?

c - 如何在 C 终端中重叠文本

c - C 中的递归下降解析器 - 跳过 epsilon 产生式

c - 意外的 pthread 函数输出

C++类实例化理论

c++ - 有效地调整 DirectX 窗口的大小

c++ - CUDA 周期性执行时间

c++ - 从文件流中检测换行字节

c - fscanf() 仅拾取文件的第一行

c - 如何防止一个线程递减信号量,直到另一个线程准备好为止?