在 snprintf 中使用长整数不会超过 65k

using a long integer in in snprintf will not go over 65k

我正在尝试使用 snprintf 命令格式化和显示零填充的长整数

long position = 0;   // defined elsewhere in the program

long micronPerStep = 5;  
long adjustedPosition = (position / micronsPerStep) * 25;
char txt[17];

int n = snprintf(txt,16,"%09u       ",adjustedPosition);

adjustedPosition 的范围是-1 到 99999999。我试过 d 和 u,但数字在 65,xxx 左右变为负数。我做错了什么???

%u为打印格式代码unsigned int.

如果要打印unsigned long,则需要%lu