该程序应检查输入的数字是否为整数。它适用于字符串,但不适用于双打。
int test;
cout << "Enter the number:" << endl;
while(true) {
cin >> test;
if (!cin || test < 0) {
cout << "Wrong input, enter the number again:" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
答案 0 :(得分:1)
试试这个:
int test;
cout << "Enter the number:" << endl;
while ( true )
{
cin >> test;
if (!(test < 0 || !cin))
break;
}
cout << "Your chosen number is: " << test << endl;
这就是你想要的吗?
答案 1 :(得分:1)
test
是int
。 istream
&gt;&gt; operator只是动态转换为int,然后,你将失去小数部分。
哟可以将test
定义为float
,并在需要时将其投放到int
。
编辑:回答你上次编辑(我没有刷新,所以我错过了这部分),发生了什么,没有goto
你循环两次:
test
为1,您不输入if,因此cin
未被清除。cin
立即返回。test
为0,因此请输入if statement并抱怨。希望这有帮助