printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。printf()函數的調用格式為:
printf("<格式化字符串>", <參量表>);
其中格式化字符串包括兩部分內容:
- 一部分是正常字符,這些字符將按原樣輸出。
- 另一部分是格式化規定字符,以"%"開始,後跟一個或幾個規定字符,用來確定輸出內容格式。
參量表是需要輸出的一系列參數,其個數必須與格式化字符串所說明的輸出參數個數一樣多,各參數之間用“,”分開,且順序一一對應,否則將會出現意想不到的錯誤。
格式化字符串
格式化字符串的格式是: %[標志][輸出最小寬度][.精度][長度]格式字符
"%-md" :左對齊,若m比實際少時,按實際輸出。
"%m.ns":輸出m位,取字符串(左起)n位,左補空格,當n>m or m省略時m=n。比如 "%7.2s" 輸入CHINA ,輸出" CH"。
"%m.nf":輸出浮點數,m為寬度,n為小數點右邊數位比如 "%3.1f",輸入3852.99,輸出3853.0
長度:為h短整形量,l為長整形量。
轉換說明符
- %a(%A) 浮點數、十六進制數字和p-(P-)記數法(C99)
- %c 字符
- %d 有符號十進制整數
- %f 浮點數(包括float和doulbe)
- %e(%E) 浮點數指數輸出[e-(E-)記數法]
- %g(%G) 浮點數不顯無意義的零"0"
- %i 有符號十進制整數(與%d相同)
- %u 無符號十進制整數
- %o 八進制整數 e.g. 0123
- %x(%X) 十六進制整數0f(0F) e.g. 0x1234
- %p 指針
- %s 字符串
- %% "%"
標志
- 左對齊:"-" e.g. "%-20s"
- 右對齊:"+" e.g. "%+20s"
- 空格:若符號為正,則顯示空格,負則顯示"-" e.g. "% 6.2f"
- #:對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f 類當結果有小數時才給出小數點。