printf函数接受一个参数类型,例如%d或%i为带符号的整型。然而,我没有看到任何长值。


当前回答

把l(小写字母l)直接放在说明符前面。

unsigned long n;
long m;

printf("%lu %ld", n, m);

其他回答

我想你的意思是:

unsigned long n;
printf("%lu", n);   // unsigned long

or

long n;
printf("%ld", n);   // signed long

把l(小写字母l)直接放在说明符前面。

unsigned long n;
long m;

printf("%lu %ld", n, m);

我认为明确地回答这个问题需要知道编译器的名称和版本,以及它正在编译的平台(CPU类型,操作系统等)。

%ld见printf参考cplusplus.com

我需要打印unsigned long long,所以我找到了这个作品:

unsigned long long n;
printf("%llu", n);

对于所有其他组合,我相信您使用printf手册中的表,为您试图打印的任何类型取行,然后列标签(就像我上面对printf("%llu", n)所做的那样)。