cin 読み取り専用数値の作成
cin を使用して数値入力を強制すると、特に混合入力タイプを処理する場合に課題が生じる可能性があります。この記事では、cin が数値のみを受け入れるようにするための解決策を調査します。
提供されたコードでは、while ループは数値以外の文字を無視して無効な入力を修正しようとします。ただし、このメソッドは複数の入力を処理するときに制限に直面します。
解決策: std::getline と std::string を使用する
このハードルを克服するには、次の方法を使用できます。より包括的なアプローチ:
std::stringstream:
変換を検証します:
#include <sstream> #include <string> 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 サイトの他の関連記事を参照してください。