首页 > 解决方案 > 尽管命令正确,但程序挂起并进入无限循环

问题描述

我对这段代码有疑问。当我运行程序时,如果我输入一个小于 11 位数字的数字,程序会继续运行而没有任何问题,但是当我输入一个 11 位数字时,我会无限期地遇到“输入数字”的消息。我起床,我必须关闭程序。问题是什么?

while (num != -1) {
    cout << "ENTER A NUMBER" << endl;
    cin >> num;
    if (num%2==0) {
        counter++;
    }
}
cout << " number of even numbers are " << counter;
_getch();
return 0;

标签: c++infinite-loop

解决方案


我假设 num 是 int 并且 int 限制是 2,147,483,647 您的数字可能更大,您可以将 num 定义为 long 例如或 long long。


推荐阅读