为什么在验证用户输入时会出现无限循环?

时间:2015-07-21 15:15:43

标签: c++ while-loop

我试图验证用户输入。如果用户输入除整数之外的任何内容,则应保留在While循环中。但是,当我给节目一个" w"例如程序只是无休止地打印"请输入整数"我必须停止该计划。

int MAns1 = 0
while (!(cin >> MAns1))
{
    cout << "\nPlease Enter An Integer: ";
    cin.clear();
}

1 个答案:

答案 0 :(得分:0)

因为您应该测试(cin >> MAns1),而不是!(cin >> MAns1)。我会做这样的事情:

#include<iostream>
using std::cin;
using std::cout;

int main() { 
    int MAns1 = 0;
    for (;;)
    {
        cout << "\nPlease Enter An Integer: ";
        cin >> MAnsi;

        // did the last read succeed?
        if(!cin) {
          // it did *not* succeed.
          break;
        }
    }
}