该程序应检查输入的数字是否为整数。它适用于字符串,但不适用于双打。cin in while循环无法正常工作(C++)
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');
}
你确实是知道的['break'(http://en.cppreference.com/w/cpp/language/break)和['continue']( http://en.cppreference.com/w/cpp/language/continue)声明,不是吗? –
代码工作正常,一切都按照它应该的方式运行,但它没有做你想做的。要做你想做的事情的唯一方法是读取一个*字符串*,检查字符串是否是一个整数格式,然后只将*字符串转换为一个整数。这是很多工作,所以除非你被告知你必须这样做,否则我不会打扰。 – john
不要使用* goto *!作为@JoachimPileborg提到的 –