這是我的第一個C++程序。我似乎無法驗證我的ValidateInput函數中的op變量的內容,有人可以解釋我做錯了什麼,並給我指針來編寫乾淨的代碼!C++中的計算器
#include <iostream>
using namespace std;
int Addition(int number1, int number2)
{
int add = number1 + number2;
return add;
}
int Subtraction(int number1, int number2)
{
int subtract = number1 - number2;
return subtract;
}
int Multiplication(int number1, int number2)
{
int multiply = number1 * number2;
return multiply;
}
int Modulo(int number1, int number2)
{
int mod = number1 % number2;
return mod;
}
int Division(int number1, int number2)
{
int divide = number1/number2;
return divide;
}
int ValidateInput(int number1, string op, int number2)
{
if (cin.fail()) {
return false;
}
if (cin.good()) {
return true;
}
}
int main()
{
int number1, number2;
string op;
cout << "C++ Calculator\n\n";
cout << "Enter number 1: ", cin >> number1;
cout << "Enter operator(+, /, %, *, -): ", cin >> op;
cout << "Enter number 2: ", cin >> number2;
if (ValidateInput(number1, op, number2) == false) {
cout << "FALSE";
}
else if (ValidateInput(number1, op, number2) == true) {
//Input seems ok
if (op == "+") {
cout << Addition(number1, number2);
}
else if (op == "-") {
cout << Subtraction(number1, number2);
}
else if (op == "/") {
cout << Division(number1, number2);
}
else if (op == "*") {
cout << Multiplication(number1, number2);
}
else if (op == "%") {
cout << Modulo(number1, number2);
}
else {
cout << "Invalid operator"; //ValidateInput function doesn't seem to notice if operator input is valid or not
}
}
}
而當它檢測到無效無效時,它仍會在結束前經歷整個程序。
您還沒有編寫任何代碼來驗證運算在上面的例子。如果你嘗試了一些不起作用的代碼,你可以發佈它嗎? – balki
據我所知ValidateInput cin檢查所有參數 – CrackSmoker9000
有人可以澄清語法:'cout << foo, cin >> bar;'?什麼是逗號? –