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 中国語 Web サイトの他の関連記事を参照してください。