式(例えば2 + 2)を求めて答えを表示し、ユーザーが 'q'を入力するまでプロセスを繰り返すスイッチケース計算機を作ろうとしています。終端文字を持つC++スイッチケース計算機
ユーザーが 'q'を入力したときにプログラムを終了させる方法がわかりません。以下のプログラムは、式を求めて答えを出し、別の式を求めます。しかし、間違った式を入力すると、 'q'を入力するときを含めて、デフォルトのケースが永遠に繰り返されます。
問題は、変数がどのようにcinされているかを知っています。オペランドはdouble型で、whileループでは何か問題があると考えていますが、どのような選択肢も考えられません。他の場所の解決策。
int main() {
double operand1;
double operand2;
char operation;
double answer;
while (operation != 'q'){
cout << "Enter an expression:""\n";
cin >> operand1 >> operation >> operand2;
switch(operation)
{
case '+':
answer = (operand1 + operand2);
break;
case '-':
answer = (operand1 - operand2);
break;
case '*':
answer = (operand1 * operand2);
break;
case '/':
answer = (operand1/operand2);
break;
default:
cout << "Not an operation :/";
return 0;
}
cout <<operand1<<operation<<operand2<< "=" << answer<< endl;
}
return 0;
}
はhttps://stackoverflow.com/questions/14907978/do-while-endlessly-looping-cout-ignores-cinを参照してください。 –
std :: getlineで行全体を読み込み、std :: regexを使ってユーザ入力を解析します。 –