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::stoi または変換検証を可能にする同様のメソッドを使用して整数に変換します。
以上がC で不正なデータ型入力を処理し、無限ループを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。