ホームページ >バックエンド開発 >C++ >C で無効な入力を適切に処理するにはどうすればよいですか?

C で無効な入力を適切に処理するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 22:00:21239ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。