Eri*_*hil 35
使用Google搜索"Visual Studio printf unsigned __int64"会生成此页面作为第一个结果,表示您可以使用前缀I64,因此格式说明符将是%I64u.
Yu *_*Hao 10
%llu是标准的打印方式unsigned long long,它不仅适用于Linux,它实际上是在C99中.所以问题实际上是使用兼容C99的编译器,即不是Visual Studio.
C99 7.19.6 格式化输入/输出功能
ll(ell-ell)指定以下d,i,o,u,x或X转换说明符适用于long long int或unsigned long long int参数; 或者后面的n转换说明符适用于沿long int参数的指针.
小智 6
I recommend you use PRIu64 format specified from a standard C library. It was designed to provide users with a format specifier for unsigned 64-bit integer across different architectures.
Here is an example (in C, not C++):
#include <stdint.h> /* For uint64_t */
#include <inttypes.h> /* For PRIu64 */
#include <stdio.h> /* For printf */
#include <stdlib.h> /* For exit status */
int main()
{
uint64_t n = 1986;
printf("And the winning number is.... %" PRIu64 "!\n", n);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)