需要输入验证的建议
Need advice for input validation
我为我的班级完成了一项非常简单的作业。然而,我是那种喜欢跳出框框思考的人。
例如,user_input1和user_input2没有验证类型。我可以键入"November",它不会捕捉到错误的数据类型错误。我向每个人提出的问题是,对初始用户输入进行输入验证的最佳方式是什么
// This program uses a function template.
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// Template definition for square function.
template <class T>
T maximum (T number1 , T number2)
{
if ( number1 > number2)
return number1;
else
return number2;
}
template <class S>
S minimum (S number1 , S number2)
{
if ( number1 > number2)
return number2;
else
return number1;
}
int main()
{
double user_input1 = 0; // To hold integer input
double user_input2 = 0;
int menu_choice = 0;
cout << " Please Enter The First Number To Be Evaluated ";
cin >> user_input1;
cout << " Please Enter The Second Number To Be Evaluated ";
cin >> user_input2;
system ("cls");
cout << " Your Entry Was As Followed 1: " << user_input1 << " 2: " <<user_input2;
cout << "n 1. This Option Will Show You The Greater Argument ";
cout << "n 2. This Will Show You The Lesser Argument ";
cout << "n Your Menu Choice Is ";
cin >> menu_choice;
switch ( menu_choice )
{
case 1:
cout << maximum (user_input1 , user_input2);
break;
case 2:
cout << minimum (user_input1 , user_input2);
break;
defualt :
" INVALID ENTRY ";
}
system ("pause");
return 0;
}
您可以解析用户的输入并检查其正确性。
当您将"November"
输入到user_input1
时,您可能会通过该数组第一个元素的整数地址来初始化这个数字(请在此处更正)。然后它将从int
隐式地转换为double
(可能)。
实现bool is_number(std::string const& input)
函数,仅验证此代码中用户输入的数字。您可以通过以下方式(例如)做到这一点:
#include <assert.h>
#include <iostream>
// ... //
int main() {
string input;
cout << " Please Enter The First Number To Be Evaluated ";
cin >> input;
assert(is_number(input));
double user_input1 = stod(input);
cout << " Please Enter The Second Number To Be Evaluated ";
cin >> input;
assert(is_number(input));
double user_input2 = stod(input);
// ... //
}
通常,assert
用于调试目的。当用户的输入不正确时,您可以使用if-else
语句并编写错误消息。我之所以写上面的例子是因为它很短。
相关文章:
- 正在尝试了解输入验证循环
- 如何在C++中检查2D数组中负值的输入验证
- 正在验证c++中用户的整数输入
- cin 的十进制输入验证?
- 输入验证以筛选出字符、字符串和一系列整数
- 输入验证将数字放入向量中
- GoogleMock:如何验证输入参数的调用次数?
- 使用函数验证输入
- 如何验证输入仅是数字数字
- 提升灵气验证输入解析器
- 当循环不中断时,使用 cin.ignore 和 cin.clear() 来验证输入
- C++,如何验证输入的数据是否为正确的数据类型
- 验证输入
- 使用正则表达式验证输入
- 验证输入和getline()函数
- 函数验证输入c++简单
- C++如何验证输入以与重载>>运算符一起使用
- 在Windows c++应用程序中验证输入UTF-8序列
- 抵押计算器验证输入错误
- 验证输入的好方法是什么?