首頁 > 後端開發 > C++ > C 格式化輸入/輸出函數中「%i」和「%d」之間的主要差異是什麼?

C 格式化輸入/輸出函數中「%i」和「%d」之間的主要差異是什麼?

Mary-Kate Olsen
發布: 2024-12-18 13:45:16
原創
547 人瀏覽過

What's the Key Difference Between `%i` and `%d` in C's Formatted Input/Output Functions?

理解轉換說明符的細微差別:格式化IO 函數中的%i 與%d

在格式化輸入/輸出領域( IO)函數如printf和scanf,轉換說明符在指導輸入或輸出的格式方面起著關鍵作用。在這些說明詞中,%i 和 %d 經常引起人們對其異同的疑問。

輸出:統一存在

當用於輸出操作時,例如與printf,%i 和 %d 的行為相同。它們始終以十進制格式表示整數。例如,以下程式碼片段示範了它們相同的輸出:

輸入:獨特行為

但是,當使用scanf 或類似函數部署在輸入操作中時, %i 和%d 表現出明顯的差異。 %d 僅將整數掃描為有符號十進位數。相反,%i 保留其十進位解釋,但也包含十六進位(以 0x 為前綴)和八進位(以 0 為前綴)輸入。

為了說明這種區別,請考慮以下範例:

如果使用者輸入033,scanf 會將其解釋為帶有%i 的27(因為它將其視為八進制)並且33 和%d(嚴格來說是十進制)。

總結...

雖然 %i 和 %d 在格式化 IO 中具有相似的用途,但它們的區別在於輸入操作期間的行為。 %d 僅限於帶符號的十進制輸入,而 %i 可以無縫處理十進制和其他基本格式(十六進制和八進制)。這種理解對於根據程式的特定需求自訂輸入操作至關重要。

以上是C 格式化輸入/輸出函數中「%i」和「%d」之間的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板