在 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中文网其他相关文章!