一般的なプログラミング タスクの 1 つは、ユーザー入力が特定の基準を満たしていることを確認することです。このような基準の 1 つは、入力が有効な浮動小数点数、特に double であることを確認することです。 C でこの検証にアプローチする方法は次のとおりです。
double x; while (1) { cout << ">"; if (cin >> x) { // valid number break; } else { // not a valid number cout << "Invalid Input! Please input a numerical value." << endl; } }
このコードは、標準入力から double を読み取ることによって基本的な検証を提供します。入力が正常に読み取られた場合は、プログラムを続行します。それ以外の場合は、エラー メッセージが表示されます。
ただし、上記のコードでは、有効な入力に対してもプログラムがエラー メッセージを出力し続ける可能性があります。これは、cin >> が原因です。 x 行は無効な入力で失敗し、入力ストリームにエラー フラグが設定されたままになります。この問題を解決するには、無効な入力が検出された後にエラー状態をクリアする必要があります。
while (1) { if (cin >> x) { // valid number break; } else { // not a valid number cout << "Invalid Input! Please input a numerical value." << endl; cin.clear(); while (cin.get() != '\n') ; // empty loop to discard invalid input } }
cin.clear() 行でエラー フラグがクリアされ、後続の空のループで残りの無効な文字が消費されます。入力ラインで。これにより、次回の入力試行が白紙の状態から開始されることが保証されます。
これらの手順に従うことで、ユーザー入力を C の double として効果的に検証でき、堅牢でユーザーフレンドリーな入力検証メカニズムが提供されます。
以上がC でユーザー入力を double として確実に検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。