我的代码是:
unsigned numbers, x = 0, odds = 0;
cout << "Input numbers to find the amount of odds. " << endl;
while ( x < 9999 ){
cin >> numbers || die("Input Error");
if (numbers % 2 == 1) {
odds++;
}
}
cout << "There are " << odds << " odds." << endl;
return 0;
当用户输入数字的非数字值时,如何退出循环?先谢谢你。
答案 0 :(得分:1)
您可以将输入作为循环的条件。
while (cin >> numbers)
{
//...
}
直到用户输入无法输入numbers
的内容时才会运行。如果您想要检查numbers < 9999
,那么我们就会
while (std::cin >> numbers && numbers < 9999)
{
//...
}
答案 1 :(得分:0)
#include <cctype>
std::string str;
cin >> str;
for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
if (!std::isdigit(*it)) {
cout << "non-digit");
return;
}
答案 2 :(得分:0)
您要查找的关键字是break
:
while ( x < 9999 ) {
if((cin >> numbers).fail())
break;
if (numbers % 2 == 1) {
odds++;
}
}
答案 3 :(得分:-1)
使用hash_fun评估字符串并输入任何非数字值