首頁 >後端開發 >C++ >如何優雅地處理 C 中的無效輸入?

如何優雅地處理 C 中的無效輸入?

Linda Hamilton
Linda Hamilton原創
2024-12-19 22:00:21244瀏覽

How Can I Gracefully Handle Invalid Input in C  ?

解決 C 中的無效輸入

在 C 中,輸入驗證對於處理意外或不正確的使用者輸入至關重要。這可以確保您的程式可以處理不同的輸入場景並避免潛在的錯誤。

考慮一種情況,您的程式請求整數但收到字元。為了防止這種不匹配導致的無限循環,清除 std::cin 設定的錯誤輸入標誌並丟棄無效輸入非常重要。

// Clear bad input flag and discard invalid input
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.clear() 清除錯誤輸入標誌,並使用 std::cin.ignore() 丟棄無效輸入。透過循環直到收到有效輸入,您的程式可以防止無限循環並優雅地處理無效輸入。

或者,您可以將輸入捕獲為字串並使用 std::stoi 或其他方法將其轉換為整數允許轉換驗證。這種方法提供了處理一系列輸入場景的靈活性。

以上是如何優雅地處理 C 中的無效輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn