2014-05-25 130 views
6

在「C Primer Plus」的示例中,作者使用%ul格式說明符(在scanf和printf中)爲unsigned long。當我試圖概括這個問題時,似乎%ul在我的電腦中出現了問題。但使用%lu解決了這個問題。實際上,我並不是關注問題和代碼行,而是想知道%ul%lu之間的區別。也許我可以弄清楚什麼是錯的。%ul和%lu C格式說明符有什麼區別?

搜索不給我一些有用的東西(除了「他們是不同的」)。

任何解釋或鏈接/引用讚賞。

回答

25

%lu是正確的,而%ul不正確

A printf格式說明符遵循表格%[flags][width][.precision][length]specifier

u說明符含義「無符號十進制整數」。

l長度修飾符的意思是「長」。

長度改性劑的轉化,這意味着%lu是正確之前應該去。

+7

'%ul'是正確的,但不會按預計的OP運行。它會在最後打印出帶有後綴'l'的數字,因爲它只是'%u','l'的格式是 –

+0

@LưuVĩnhPhúc的重點。 –

相關問題