【问题标题】:How do I get C++ to ignore incorrect input?如何让 C++ 忽略不正确的输入?
【发布时间】:2016-07-31 10:41:03
【问题描述】:

我正在用 C++ 创建一个简单的控制台应用程序,其中包含一个将两个整数作为输入的 while 循环。但是如果我输入一个不是整数的字符,比如“a”,循环就会变成无限的。我该如何阻止这种情况?

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

到目前为止我的代码(尝试在输入 char 值“|”时结束循环):

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;
}

【问题讨论】:

标签: c++


【解决方案1】:

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

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

还可以查看this 的答案,它会对您有很大帮助。

你的代码应该是这样的:

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;
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-23
    • 2021-12-31
    • 2020-06-14
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多