首页 > 后端开发 > C++ > 如何使 C 中的 cin 只接受数字输入?

如何使 C 中的 cin 只接受数字输入?

DDD
发布: 2024-12-17 07:34:25
原创
614 人浏览过

How to Make `cin` Accept Only Numerical Input in C  ?

将 cin 设为只读数字

使用 cin 强制进行数字输入可能会带来挑战,尤其是在处理混合输入类型时。本文研究了一种解决方案,以确保 cin 只接受数字值。

在提供的代码中,while 循环尝试通过忽略非数字字符来纠正无效输入。然而,这种方法在处理多个输入时面临局限性。

解决方案:使用 std::getline 和 std::string

要克服这个障碍,我们可以使用更全面的方法:

  1. 使用以下命令读取整行std::getline(): 这会将用户输入的完整行读取为字符串。
  2. 使用 std::stringstream: 将字符串转换为双精度型🎜>

      从输入行创建一个字符串流 ss。
    • 尝试提取双重使用>>
  3. 验证转换:

      检查转换是否成功以及流是否已到达末尾字符串的 (eof())。
    • 如果成功,则退出循环。否则,显示错误消息。
这是一个示例实现:

#include <sstream>
#include <string>

int main()
{
    std::string line;
    double d;
    while (std::getline(std::cin, line))
    {
        std::stringstream ss(line);
        if (ss >> d)
        {
            if (ss.eof())
            {   // Success
                break;
            }
        }
        std::cout << "Error!" << std::endl;
    }
    std::cout << "Finally: " << d << std::endl;
}
登录后复制
此解决方案可确保正确处理整数和浮点数,非数字字符被完全丢弃。

以上是如何使 C 中的 cin 只接受数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

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