C の Double としてのユーザー入力の検証
ユーザー入力を検証してその整合性を確認することは、C プログラミングにおいて非常に重要です。浮動小数点値を扱う場合、入力が実際に double であることを確認することが不可欠になります。
ユーザーに double を繰り返し求める次のコード スニペットを考えてみましょう。
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; } }
ただし、提供されたコードには欠陥があります。ユーザーが無効な入力を入力すると、if ステートメントが失敗し、else ブロックにエラー メッセージが表示されます。ただし、プログラムはユーザーに再度入力を求めるプロンプトを表示しないため、エラー メッセージの無限ループが発生します。
この問題を解決するには、cin.clear() 関数を使用してエラー状態をクリアし、 while (cin.get() != 'n') ;ループして入力バッファを空にします。このようにして、無効な入力があった場合、プログラムはエラー メッセージを表示し、エラー状態をクリアし、無効な入力を破棄し、ユーザーに有効な入力を求めます。
以上がC で二重入力を確実に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。