問題:未處理的輸入類型不匹配中的無限循環
在需要數字輸入的循環中,如果非- 數字輸入透過cin 提供。這種行為可以透過理解 cin 如何處理輸入來解釋。
解釋:
當 cin 在期望數值的同時遇到非數字輸入時,它會進入失敗狀態。在這種狀態下,cin 將停止提示進一步輸入,導致循環繼續而不等待使用者輸入。
解決方案:處理輸入類型錯誤
避免無限循環在這種情況下循環,檢測和處理輸入類型錯誤至關重要。一種方法是檢查 cin 是否處於失敗狀態:
if (cin.fail()) { cout << "ERROR: Invalid input" << endl; // Clear the fail state cin.clear(); // Discard bad input characters (e.g., using numeric_limits or ignore()) }
透過處理失敗狀態,可以將 cin 重設為正常操作狀態,從而允許在解決錯誤後繼續循環。
其他技術:
為了更強大的輸入驗證,請考慮使用以下技術技巧:
以上是如何防止 C 中未處理的輸入類型不匹配導致的無限循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!