int main()
{
unsigned short wC;
while(1)
{
cout << "Enter the Value"<<endl;
cin >> wC;
if(wC < 0 || wC > 3)
{
cout << "Wrong value, Please Enter again" << endl;
}
else break;
}// end of while
cout << "The value is : " << wC << endl;
}//end of main
上記のコードでは、短い範囲で値を指定すると0xffff
正常に動作します。そしてループから抜け出し、ユーザーがwC
0 から 3 の間の値を指定した場合にのみ値を出力します。
ただし、入力された値wC
がそれ以上の場合0xffff
、無限ループに進みます。
入力バッファに値がまだ存在しているためだと思いますcin
か?それが機能するように、いくつかの解決策(ヒント)を助けて提供してください。
注 : ユーザーは任意の整数値を自由に指定できます。コードはそれを除外する必要があります。... でg++
コンパイラを使用するUbuntu/Linux
sizeof(unsigned short int) = 2 bytes