1
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正常に動作します。そしてループから抜け出し、ユーザーがwC0 から 3 の間の値を指定した場合にのみ値を出力します。

ただし、入力された値wCがそれ以上の場合0xffff、無限ループに進みます。

入力バッファに値がまだ存在しているためだと思いますcinか?それが機能するように、いくつかの解決策(ヒント)を助けて提供してください。

注 : ユーザーは任意の整数値を自由に指定できます。コードはそれを除外する必要があります。... でg++コンパイラを使用するUbuntu/Linuxsizeof(unsigned short int) = 2 bytes

4

1 に答える 1