当前位置:首页 C++ > 正文

c++cin.clear()的输入错误处理

作者:野牛程序员:2023-12-01 14:11:23 C++阅读 2607

cin.clear()通常用于清除流的错误标志,而不是处理输入错误本身。如果你想要处理输入错误,可以结合使用cin.clear()cin.ignore()来清除错误标志并清除输入缓冲区。以下是一个简单的例子:

#include <iostream>
#include <limits>

int main() {
    int number;

    std::cout << "Enter an integer: ";

    // 尝试读取整数
    std::cin >> number;

    // 检查输入是否有效
    while (std::cin.fail()) {
        std::cout << "Invalid input. Please enter an integer: ";

        // 清除错误标志
        std::cin.clear();

        // 清除输入缓冲区
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\\n');

        // 重新尝试读取整数
        std::cin >> number;
    }

    // 在这里可以使用有效的整数进行后续处理
    std::cout << "You entered: " << number << std::endl;

    return 0;
}

这个例子中,当std::cin.fail()检测到输入错误时,程序会要求用户重新输入,并使用std::cin.clear()清除错误标志,然后使用std::cin.ignore()清除输入缓冲区。这有助于防止无限循环读取相同的错误输入。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击