ホームページ >バックエンド開発 >C++ >C で二重ユーザー入力を適切に検証するにはどうすればよいですか?

C で二重ユーザー入力を適切に検証するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-01 20:44:14595ブラウズ

How to Properly Validate Double User Input in C  ?

C の Double としてのユーザー入力の検証

数値データを扱う場合、ユーザー入力の精度を確保することが重要です。この記事では、C でユーザー入力を double として効果的に検証する方法について説明します。

問題の理解:

提供されたコードは、ユーザー入力を double として検証しようとします。ただし、入力が無効な場合は後続の入力を求めるプロンプトが表示されず、エラー メッセージの無限ループが発生します。

解決策:

この問題に対処するには、エラー状態をクリアし、以前に入力された無効な文字を破棄するには、これが必要です。これは、次のコードを使用して実現できます:

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
  }
}

この変更されたコード内:

  • cin.clear(): エラー状態をクリアします。
  • while (cin.get() != 'n') ;: 前の行に入力された無効な文字をすべて破棄します。このループは改行文字 ('n') が見つかるまで続き、事実上入力バッファを空にします。

以上がC で二重ユーザー入力を適切に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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