我試圖從-1到99999999我曾嘗試與snprintf的命令使用中的snprintf一個長整型不會去了65K
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範圍將格式化和顯示零填充長整型d和u,但是這個數字在大約65,xxx處變成負值。我究竟做錯了什麼???
你使用的是什麼版本的c編譯器? 32位,64位,16位也許?我會說檢查編譯器的snprintf()格式字符串的文檔。 %u是什麼?也許試試%lu,%d或%ld。 –
我使用的是arduino環境,所以不太確定C++的版本是什麼。 –