当输入在C ++中不是无符号时,立即退出循环

时间:2015-10-20 18:27:21

标签: c++ loops

我的代码是:

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;

当用户输入数字的非数字值时,如何退出循环?先谢谢你。

4 个答案:

答案 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评估字符串并输入任何非数字值