如何让C++忽略不正确的输入

How do I get C++ to ignore incorrect input?

本文关键字:不正确 输入 C++      更新时间:2023-10-16

我正在C++中创建一个简单的控制台应用程序,该应用程序包含一个以两个整数为输入的while循环。但是,如果我输入一个不是整数的字符,例如"a",则循环将变为无穷大。我该如何阻止这种情况?

我的代码应该在输入字符值"|"时终止,但它将整数作为输入,我不知道如何解决这个问题。

到目前为止我的代码(试图在输入字符值"|"时结束循环):

int main()
{
    int x = 0;
    int y = 0;
    char c = {x};
    char d = {y};
    while (c != '|')
    {
        cin >> x >> y;
        // later I will do stuff with x and y
    }
    system("pause");
    return 0;
}

您可以简单地将其添加到while循环中:

if(cin.fail()) {
    break;
}

也看看这个答案,它会帮你很多。

你的代码应该是这样的:

int main()
{
    int x = 0;
    int y = 0;
    char c = {x};
    char d = {y};
    while (c != '|')
    {
        cin >> x >> y;
        if(cin.fail()) {
            break;
        }
        // later I will do stuff with x and y
    }
    system("pause");
    return 0;
}

否则,如果您不想在循环时完全中断,请使用continue而不是break