C では、 cin 関数を使用してユーザー入力を読み取ることができますが、入力が有効であるかどうかを検証しようとすると問題が発生します。番号。この問題は、数値以外の文字が入力された場合に発生し、部分的な入力が次の反復に残される可能性があります。
解決策の 1 つは、std::getline と std::string を利用して入力行全体を読み取ることです。その後、std::stringstream を使用して入力を解析し、double 値を抽出します。ループは、行全体が double に正常に変換され、入力の残りの問題がなくなるまで継続されます。
#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 で `cin` を使用して数値を確実に入力する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。