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