The argument for printf that formats a long

c++long-integerprintf

The printf function takes an argument type, such as %d or %i for a signed int. However, I don't see anything for a long value.

Best Solution

Put an l (lowercased letter L) directly before the specifier.

unsigned long n;
long m;

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