ユーザーが 0 で除算したかどうかのエラー チェックで少し問題があります。ユーザーが 0 で除算を要求した場合、結果の文字列は、0 で除算を実行することは違法であることを示しているはずです。次のようになります。
あなたの操作は分割です: 6/0 違法操作!
しかし、私はそれをそのように見せる方法がわかりません。これまでのところ、「これは違法です」というメッセージしか表示できませんstd::cout
が、出力は次のようになります。
これは違法です!あなたの操作は: 6 / 0=-858993460
また、else ステートメントで結果を別の文字列に設定しようとしました。無視するだけです。
これをどのようにコーディングするのでしょうか?
void Simplecalc::setOperation(char oper, int op1, int op2)
{
operation = oper;
number1 = op1;
number2 = op2;
if(operation == '+')
{
answer = number1 + number2;
type ="addition";
}
else if(operation =='-')
{
answer = number1 - number2;
type ="subtraction";
}
else if(operation =='*')
{
answer = number1 * number2;
type = "multiplication";
}
else if(operation =='/')
{
if(number2 != 0)
{
answer = number1/number2;
type = "division";
}
else
{
cout<<"this is illegal!";
}
}
else if(operation =='%')
{
answer = number1%number2;
type ="modulus";
}
}
string Simplecalc::getResults()
{
stringstream ss;
ss <<"Your operation is "<<type<<": "<<number1<<" "<<operation<<" "<<number2<<"="
<<answer<<"\n";
results =ss.str();
return results;
}