C++ 用户输入验证

在编写程序时,请考虑用户将如何滥用您的程序,尤其是在文本输入方面。对于每个文本输入点,请考虑:

  • 会不会提取失败?
  • 用户可以输入比预期更多的输入吗?
  • 用户可以输入无意义的输入吗
  • 用户可以溢出输入吗?

以下代码将清除任何无关的输入:

std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

以下代码将测试并修复失败的提取或溢出:

if (!std::cin) // has a previous extraction failed or overflowed?
{
    // yep, so let's handle the failure
    std::cin.clear(); // put us back in 'normal' operation mode
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // and remove the bad input
}

最后,如果原始输入无效,则使用循环要求用户重新输入。

本文作者:Leafmoes

本文链接:https://www.cnblogs.com/leafz/p/17126679.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Leafmoes  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.