[0,2] の範囲の整数を入力するようユーザーに求めるプログラムがあります。次のリンクをガイドとして使用しました。
ただし、ユーザーがデータを入力せずにEnterキーを押すと、カーソルはコマンドプロンプトの次の行に移動するだけですが、ユーザーに有効な数値を入力するよう促したいです。この場合、ユーザーにプロンプトを表示することは理にかなっていますか、それとも最初から単一行入力として検証を実装しない理由はありますか? 文字列の場合、これを解決するために getline を使用しますが、この場合はそれを使用する必要がありますか? 上記のリンクに基づく私のコードは次のとおりです。
#include <iostream>
int main()
{
int answeredNumber;
while(1)
{
std::cout << "Enter your answer: ";
if(std::cin >> answeredNumber && answeredNumber >= 0 && answeredNumber <= 2)
{
break;
}
else
{
std::cout << "Please enter a valid answer: " ;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}
system("pause");
}