C 程式設計/過程和函式/printf
外觀
在 C 語言中,printf 函式根據模板字串 template 的控制,將可選引數列印到流 stdout。它返回列印的字元數,如果出現輸出錯誤則返回負值。
int printf (const char *template, ...)
有關 printf 的更多資訊,請參閱 維基百科上關於 printf 的文章.
以下表格總結了 C 語言實現的 printf 中所有不同轉換的功能
- `%d', `%i'
- 將整數列印為帶符號的十進位制數。`%d' 和 `%i' 在輸出方面是同義詞,但在用於輸入的
scanf()函式時則不同。
- `%o'
- 將整數列印為無符號的八進位制數。
- `%u'
- 將整數列印為無符號的十進位制數。
- `%x', `%X'
- 將整數列印為無符號的十六進位制數。`%x' 使用小寫字母,`%X' 使用大寫字母。
- `%f'
- 以常規(定點)表示法列印浮點數。
- `%e', `%E'
- 以指數表示法列印浮點數。`%e' 使用小寫字母,`%E' 使用大寫字母。
- `%g', `%G'
- 以常規或指數表示法列印浮點數,具體取決於其幅度哪個更合適。`%g' 使用小寫字母,`%G' 使用大寫字母。
- `%a', `%A'
- 以十六進位制分數表示法列印浮點數,其中以 2 為底的指數以十進位制數字表示。`%a' 使用小寫字母,`%A' 使用大寫字母。
- `%c'
- 列印單個字元。
- `%lc'
- 列印單個寬字元。
- `%C'
- 這是 `%lc' 的別名。(這是一個非標準的 Unix 特定擴充套件。)
- `%s'
- 列印字串。
- `%ls'
- 列印寬字元字串。
- `%S'
- 這是 `%ls' 的別名。(這是一個非標準的 Unix 特定擴充套件。)
- `%p'
- 列印指標的值。
- `%n'
- 獲取到目前為止列印的字元數。注意,此轉換說明符不會產生任何輸出。
- `%m'
- 列印與
errno變數的值相對應的字串。(這是一個非標準的 GNU 擴充套件。)
- `%%'
- 列印文字 `%' 字元。
如果 語法 轉換說明符 無效,將發生不可預測的事情,因此不要這樣做。如果提供的 函式引數 不足以提供模板字串中所有轉換說明符的值,或者引數型別不正確,則結果不可預測。如果您提供的引數多於轉換說明符,則多餘的引數值將被忽略;這有時很有用。