首頁 > 後端開發 > C++ > 主體

在 C 中我應該使用 char 還是 int 進行輸入驗證?

Susan Sarandon
發布: 2024-10-28 22:30:30
原創
444 人瀏覽過

 Should I use char or int for input validation in C?

isdigit(c) - 利用char 與int 進行輸入驗證

檢查程式碼時,旨在將使用者輸入驗證為數字,問題出現了:輸入變數類型應該是- char 還是int?

理解這個困境需要深入研究 C 中 isdigit 函數的複雜性。與它的名字相反,isdigit 需要一個整數參數,引起對 char 輸入相容性的擔憂。

解釋在於 C 的歷史,特別是 getchar(),它以整數形式檢索字元以容納字元代碼和錯誤代碼(表示 EOF 的負值)。這種設計會產生與 char 的相容性問題,根據編譯器的不同,char 可以是有符號的,也可以是無符號的。

有符號的 char 提出了一個挑戰,因為負值與 EOF 重疊,可能會導致錯誤。因此,isdigit 和相關函數需要將輸入視為無符號字元以確保積極性。

為了確保相容性,請按如下方式修改代碼:

<code class="c">if(isdigit((unsigned char)c))</code>
登入後複製

此外,驗證這一點至關重要輸入流在使用c 之前是有效的,因為關閉的流可能會使其未初始化。

以上是在 C 中我應該使用 char 還是 int 進行輸入驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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