在 C 中处理不正确的数据类型输入
在 C 中,当程序无法处理输入时,不正确的数据类型输入可能会导致无限循环预期的类型。例如,如果请求的是整数,但输入的是字符,则程序可能会进入无限输入循环。
解决方案:
根本问题是设置当输入不符合预期类型时,std::cin 中的“错误输入标志”。要解决此问题:
以下代码片段演示了这一解决方案:
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::stoi 或启用转换验证的类似方法将其转换为整数。
以上是如何处理不正确的数据类型输入并避免 C 中的无限循环?的详细内容。更多信息请关注PHP中文网其他相关文章!