可能重複:
Difference between format specifiers %i and %d in printf爲什麼我應該用「%d」代替「%i」作爲C中整數的轉換說明符?
這個問題由我用看到這種偏好在所有的C代碼我讀過的事實的動機。
可能重複:
Difference between format specifiers %i and %d in printf爲什麼我應該用「%d」代替「%i」作爲C中整數的轉換說明符?
這個問題由我用看到這種偏好在所有的C代碼我讀過的事實的動機。
i
和d
轉換說明符與fprintf
等效,但它們與fscanf
不同。
i
和d
都存在於所有C標準(C89,C90,C11)中。
d
比i
更常見,所以我寧願使用d
代替fprintf
。
非常感謝您,我剛剛閱讀了scanf的手冊頁,並且檢查了您剛輸入的內容。 – EPadronU 2012-07-07 17:20:06
據我所知,%d意味着base-10(d代表DECImal),而我是基礎靈活的(可以使用修飾符來表示八進制或十六進制)。所以,你應該用d,如果你不想去想它,而你總是希望基地-10的printf即INT
%d and %i
均值相同;簽署十進制表示 但在scanf
% d代表十進制整數,int *和%i代表整數; int *整數可以是八進制(前導0)或十六進制(前導0x)。
@Aravindhanarvi我想他們想要一些快速的聲譽?他們需要增加聲譽來找到重複。這個問題顯然是一個重複,但沒有人投票結束。 – Hogan 2012-07-07 17:40:48