讓我們以下面的程序:關於用C
#include <stdio.h>
int main()
{
long t =57 ;
printf("[%+03ld]", t);
}
,它的輸出:
[+57]
我莫名其妙地感到困惑:我告訴他墊的輸出寬度3(03ld
),但爲零,但如果強制輸出在數字前加一個加號(+
),如果該數字的長度已經是2位數(如57),它不會添加所需的零。對於數字< 10它填充1個零。
從http://www.cplusplus.com/reference/cstdio/printf/
(0) - >左墊用零的數目(0)而不是空格配置的填充時(參見寬度子說明符)。
(+) - >即使對於正數,強制在結果前加上加號或減號(+或 - )。默認情況下,只有負數前面帶有 - 符號。
(寬) - >要打印的最少字符數。如果要打印的值小於此數字,則結果將填充空白。即使結果較大,該值也不會被截斷。
所以我只需要澄清...上方從報價的(width)
說明符指的是輸出的字符串(即:將要打印的字符)的整個長度由該格式說明("%+03ld"
)控制或要打印的號碼字符的全長?
「(寬度) - >最小字符數_要打印_」。我不知道你還需要什麼;這要儘可能清楚。 – 2014-10-09 08:28:51