處理C 中不正確的資料類型輸入
確保使用者提供適當的資料類型對於防止意外行為和無限循環至關重要。在 C 中,處理錯誤的輸入可能具有挑戰性。
問題陳述:
當程式期望輸入整數並且使用者輸入字元時,程式輸入無限環形。相反,當需要輸入整數但輸入字元時,也會出現相同的問題。
解:
由於 std::cin 函數輸入錯誤而出現無限循環當輸入失敗時設定標誌。要解決這個問題,我們需要:
這是一個範例程式碼片段:
while (std::cout << "Enter a number" && !(std::cin >> num)) { std::cin.clear(); // clear bad input flag std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // discard input std::cout << "Invalid input; please re-enter.\n"; }
此程式碼循環,直到使用者輸入有效的數字。它會清除錯誤的輸入標誌,丟棄無效的輸入,並提示使用者重試。
替代方法:
而不是使用std::cin,您也可以取得字串形式的輸入,並使用std::stoi 將其轉換為整數。這種方法允許您在將輸入分配給整數變數之前驗證轉換。
以上是如何防止 C 中資料類型輸入錯誤導致無限循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!