I am trying to get the addition done on the following method defined in my code, but after submitting the user input the program just return an exception instead of addition.
Exception:
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
Code:
#include <iostream>
#include <string>
using namespace std;
bool inputValidation_F(string userInput_VSTR1, string userInput_VSTR2)
{
for (int inputChecker_V = 0; inputChecker_V < userInput_VSTR1.length() || userInput_VSTR1.length() && inputValidation_F; inputChecker_V ++)
if (!(userInput_VSTR1[inputChecker_V] || userInput_VSTR2[inputChecker_V] >= 48 && userInput_VSTR1[inputChecker_V] || userInput_VSTR2[inputChecker_V] <= 57))
return false;
return true;
}
void mainMenu_F();
void userChoice_F();
void calCulations_F(double, double);
void resultAddition_F(double, double);
int main()
{
mainMenu_F();
}
void mainMenu_F()
{
cout << "Main Menu:" << '\n';
cout << "-------------------------------" << '\n';
cout << "Enter + for Addition" << '\n';
cout << "-------------------------------" << '\n';
cout << "Choose any Option from the List" << '\n';
cout << "-------------------------------" << '\n';
userChoice_F();
}
void userChoice_F()
{
double addition_V_1;
double addition_V_2;
char uChoice_V;
cin >> uChoice_V;
switch (uChoice_V)
{
case '+':
cout << "Addition: Enter the first value: "; cin >> addition_V_1;
cout << "Addition: Enter the second value: "; cin >> addition_V_2;
calCulations_F(addition_V_1, addition_V_2);
}
}
void calCulations_F(double addition_V_1, double addition_V_2)
{
string addition_V_1STR;
string addition_V_2STR;
addition_V_1 = stod (addition_V_1STR);
addition_V_2 = stod (addition_V_2STR);
bool additionChecker_F;
additionChecker_F = inputValidation_F (addition_V_1STR, addition_V_2STR);
if (!additionChecker_F)
additionChecker_F = false;
else resultAddition_F (addition_V_1, addition_V_2);
}
void resultAddition_F(double addition_V_1, double addition_V_2)
{
double resultAddition_V = (addition_V_1 + addition_V_2);
cout << "The result for the addition of the Entered values is: [" << resultAddition_V << "]" << '\n';
}