在 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中文網其他相關文章!