I am validating user input using Regular Expressions in C++, but the problem I'm facing is that the code is very repetitive. I'd like to have a function that simply takes in the variable to which the user is inputting a value and its defined RE as arguments, validating these inputs and only then allowing the user to move on to the next input. At the current moment I'm doing this like so:
//input name and validate it
while(1)
{
std::cout<<"Your Name in that program"<<std::endl;
std::getline(std::cin, name);
if(std::regex_match(name,name_pattern))
{
break;
}
else
{
std::cout<<"You have entered incorrectly, please try again"<<std::endl;
}
}
//input student id and validate it
while(1)
{
std::cout<<"Your student ID for that program"<<std::endl;
std::getline(std::cin, studentID);
if(std::regex_match(studentID,studentID_pattern))
{
break;
}
else
{
std::cout<<"You have entered incorrectly, please try again"<<std::endl;
}
}
I have a few more inputs that follow the same pattern, but I would like to avoid that.
Aucun commentaire:
Enregistrer un commentaire