驗證 C 中的數字輸入
在處理整數輸入的程式中,確保使用者提供有效的數字至關重要。不幸的是,atoi() 函數在處理多位整數時存在不足。本文探討了驗證數位輸入的替代方法。
使用失敗位元
C 的輸入流 (cin) 在遇到無法解析的輸入時設定失敗位元。可以利用它來驗證輸入,如下所示:
int n; cin >> n; if(!cin) { // User did not input a number cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
處理輸入溢位
當整數超過最大允許值時,cin 也會設定failbit。為了防止這種情況,請在讀取輸入之前檢查流狀態:
while(!cin.eof()) { int n; cin >> n; if(!cin) { // Input error occurred cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } else { // Valid input process(n); } }
此循環繼續讀取並驗證輸入,直到到達文件末尾 (EOF)。
其他替代品
以上是如何在「atoi()」之外驗證 C 中的數字輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!