Trick 1.8 - 格式輸出 printf
基本的用法不外乎就是以 %
後面接上各種指示符號1例如整數的 %d
、浮點數的 %f
、科學記號的 %e
、字元的 %c
、字串的 %s
、指標的 %p
。外加上各種格式化的標示。
比方說如果要限制長度,置左或置右就可以在中間加上一個數字表示該格式輸出的最小寬度。例如 %3d
表示至少輸出 3 位數。
此外還有一些 flag 諸如 +
, -
, 0
, #
,
分別表示正負號、是否置左、是否補零、是否加上小數點或前置 0(八進位), 0x(十六進位)、以空白取代正號。
關於 printf 個人覺得在比賽中最厲害的一點是「可變寬度」設計,例如我們可以利用一個整數來指定寬度,這點在大數運算的輸出時相當方便,例如 %0*d
,後面所接的第一個參數就是寬度啦。
Note
浮點數在 printf 的輸出只有一種:%f
,請不要使用 %lf
(那是用來讀入 double
的)。不過,如果要輸出 long double
型態的浮點數,請用 %Lf
。
參考資料
1. http://www.cplusplus.com/reference/cstdio/printf/ ↩