longをフォーマットするprintfの引数とは?

関数 printf は,signed int の場合は %d%i のように,引数の型を受け取ります。しかし、longの値については何も見当たりません。

ソリューション

指定子の直前にl(小文字のL)を置く。

unsigned long n;
long m;

printf("%lu %ld", n, m);
解説 (4)

という意味だと思います。

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

または

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

%ld[cplusplus.com のprintf` リファレンス]1 を参照してください。

解説 (0)