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

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

Mary-Kate Olsen
發布: 2024-11-28 15:23:10
原創
738 人瀏覽過

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

格式化IO 函數中轉換說明符%i 和%d 之間的區別

在格式化IO 函數中,例如printf和scanf,轉換說明符用於控制輸入和輸出資料的解釋和格式化。在各種說明符中,%i 和 %d 經常用於整數。

輸出:

當用於輸出時(例如,與 printf 一起使用),%i 和%d 的行為相同。它們都表示一個整數值,並根據系統區域設定以預設格式列印它。

輸入:

但是,%i 和 %d 之間的差異出現了在輸入操作期間(例如,使用 scanf)。在這裡,它們的行為有所不同:

  • %d: 將整數掃描為有符號十進制數,以基本算術表示法表示。
  • % i: 主要將整數掃描為帶符號的十進制數,但如果前綴適當,它也允許十六進制和八進位表示。十六進位數字以“0x”開頭(例如“0x20”),而八進位數字以“0”開頭(例如“025”)。

因此,在輸入類似“ 033”,scanf("%d") 將其解釋為33(帶符號的十進制數),而scanf("%i") 將其解釋為27(八進制數),表示表示方式不同。

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

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