首页 >后端开发 >C++ >如何优雅地处理 C 中的无效输入?

如何优雅地处理 C 中的无效输入?

Linda Hamilton
Linda Hamilton原创
2024-12-19 22:00:21244浏览

How Can I Gracefully Handle Invalid Input in C  ?

解决 C 中的无效输入

在 C 中,输入验证对于处理意外或不正确的用户输入至关重要。这可以确保您的程序可以处理不同的输入场景并避免潜在的错误。

考虑一种情况,您的程序请求整数但收到字符。为了防止这种不匹配导致的无限循环,清除 std::cin 设置的错误输入标志并丢弃无效输入非常重要。

// Clear bad input flag and discard invalid input
while (std::cout << "Enter a number" && !(std::cin >> num)) {
    std::cin.clear(); // Clear bad input flag
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard input
    std::cout << "Invalid input; please re-enter.\n";
}

此代码片段检查输入操作是否失败,然后使用 std::cin.clear() 清除错误输入标志,并使用 std::cin.ignore() 丢弃无效输入。通过循环直到收到有效输入,您的程序可以防止无限循环并优雅地处理无效输入。

或者,您可以将输入捕获为字符串并使用 std::stoi 或其他方法将其转换为整数允许转换验证。这种方法提供了处理一系列输入场景的灵活性。

以上是如何优雅地处理 C 中的无效输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn