問題:
提供されたコードは、数字以外の文字が入力されないようにすることを目的としています。入力として受け入れられます。ただし、入力に有効な数字の後に文字が含まれる状況は処理できません。
提案された解決策:
この問題に対処するには、別のアプローチを採用することをお勧めします。 std::getline と std::string.
コードを使用するスニペット:
#include <string> #include <sstream> int main() { std::string line; double d; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> d) { if (ss.eof()) { // Success break; } } std::cout << "Error!" << std::endl; } std::cout << "Finally: " << d << std::endl; }
説明:
この改訂されたソリューションは次の手順に従います:
このアプローチ入力内の末尾の文字やスペースに関係なく、有効な実数のみが入力として受け入れられるようにします。
以上がC ストリームを使用して無効な数値入力を確実に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。