跳轉到內容

C 程式設計/過程和函式/printf

來自華夏公益教科書,開放的書籍,開放的世界

關於 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 擴充套件。)
`%%'
列印文字 `%' 字元。

如果 語法 轉換說明符 無效,將發生不可預測的事情,因此不要這樣做。如果提供的 函式引數 不足以提供模板字串中所有轉換說明符的值,或者引數型別不正確,則結果不可預測。如果您提供的引數多於轉換說明符,則多餘的引數值將被忽略;這有時很有用。

華夏公益教科書