c++ - 如何验证用户输入的日期月份输入?
问题描述
我正在编写一个程序来验证用户输入格式为 1900 年 1 月 1 日的日期输入。我编写了代码来验证每个月的闰年和日期限制,但我无法验证每个月的文本输入。
这是尚未工作的代码部分;字符串条目的验证,使得除 Jan、Feb、Mar、Apr.......Dec 之外的任何用户输入都会抛出错误“输入错误,请输入有效日期”
if (( month != "Jan" || month != "Feb" || month != "Mar" || month != "Apr"
|| month != "May" || month != "Jun" || month != "Jul" || month != "Aug"
|| month != "Sep" || month != "Oct" || month != "Nov" || month != "Dec"))
{
std::cout << "Wrong entry, please enter valid date." << std::endl;
}
else
{
std::cout << day << " " << month << " " << year;
}
解决方案
您正在检查月份是否不是“一月”或不是“二月”或等。由于该月不可能同时是所有可能的月份,因此您的if
条件将始终为真。
将||
您的条件中的替换为&&
,它将正常工作。
推荐阅读
- python - python argparse:使用两组必需的参数
- java - @Transaction 没有在 spring mvc 中回滚
- sql - 我在哪里可以使用 UTL_FILE 从我的 oracle 数据库访问文件?
- java - 垂直 recyclerView 和 Horizontal recyclerview 一起滚动
- python - 计算熊猫行上的连续零
- regex - 查找字符串中是否存在反斜杠 Go
- angular - *ngFor orderby 计算属性的可观察列表
- highcharts - 始终在第一个可见点上显示数据标签
- python - Mypy:有什么方法可以实现“SelfType”TypeVar?
- regex - 用于验证 rewriteMap 中的 URL 的正则表达式