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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!