【发布时间】:2017-09-30 10:43:03
【问题描述】:
我正在制作一个程序,我向用户询问日期并将其与当前日期进行比较。所有的功能都在那里,但我似乎无法验证日期、月份和年份是数字,所以输入字母会使程序崩溃。有任何想法吗? (注意:do while 循环中的函数按预期工作)
do // This do while loop forces the user to enter a valid date before moving on
{
cout << "Enter the lent date in the format dd/mm/yyyy: " << endl;
cin >> day1 >> buffer >> month1 >> buffer >> year1;
if(cin.fail())
{
continue;
}
}
while (!validateDateSize(day1, month1, year1) || !validateDateIntegrity(day1, month1, year1));
【问题讨论】:
-
我还建议您花点时间阅读 Eric Lippert 的 How to debug small programs。并学习如何使用调试器(这对任何程序员来说都是至关重要的工具)。
-
输入是从不数字;它们是文本。如果需要对输入做详细分析,不要直接转成数字;将其作为文本阅读,进行分析,并在您确定合适的情况下进行转换。
标签: c++ validation istream formatted-input