入力検証の強化: 数値入力のみを受け入れる
cin を使用してユーザー入力を受信する場合、特にデータを処理する場合には、データの正確性を強制することが重要です。数値を使用します。提供されたコードでは、「1x」の「x」などの数字以外の文字が無視されるという問題が発生し、誤った結果が生じる可能性があります。
堅牢なソリューション
この問題を修正するためのより徹底的なアプローチは、 std::getline と std::string を使用して、数値以外の文字列を含む入力行全体をキャプチャすることです。文字。次の拡張コード スニペットは、このアプローチを示しています。
#include <string> #include <sstream> double enter_number() { double number; std::string line; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> number) { if (ss.eof()) { // Success break; } } std::cout << "Invalid input" << std::endl; std::cout << "Try again" << std::endl; } return number; }
実装の説明
結論
この強化されたアプローチでは、数字以外の文字を入力しようとすると無効な入力としてフラグが立てられ、ユーザーは有効な番号を再入力するよう求められます。このソリューションは、元のコードで示された問題に効果的に対処し、入力行に数値以外の文字が追加されても、有効な数値入力のみが受け入れられるようにします。
以上がC の `cin` を使用して数値のみを入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。