首页 > 后端开发 > C++ > 如何处理不正确的数据类型输入并避免 C 中的无限循环?

如何处理不正确的数据类型输入并避免 C 中的无限循环?

Patricia Arquette
发布: 2024-12-09 17:46:11
原创
180 人浏览过

How to Handle Incorrect Data Type Input and Avoid Infinite Loops in C  ?

在 C 中处理不正确的数据类型输入

在 C 中,当程序无法处理输入时,不正确的数据类型输入可能会导致无限循环预期的类型。例如,如果请求的是整数,但输入的是字符,则程序可能会进入无限输入循环。

解决方案:

根本问题是设置当输入不符合预期类型时,std::cin 中的“错误输入标志”。要解决此问题:

  1. 清除错误输入标志:利用 std::cin.clear() 重置标志,表明输入现在可以接受。
  2. 丢弃错误的输入: 使用 std::cin.ignore() 从输入中删除不正确的输入

以下代码片段演示了这一解决方案:

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板