Ich versuche, einen Switch Case Calculator zu machen, der nach einem Ausdruck (z. B. 2 + 2) fragt und die Antwort ausdruckt, den Vorgang wiederholend, bis der Benutzer 'q' eingibt.C++ Switch Case Calculator mit Abschlusszeichen
Ich kann nicht herausfinden, wie das Programm beendet wird, wenn der Benutzer 'q' eingibt. Das folgende Programm fragt nach einem Ausdruck, gibt die Antwort und fragt nach einem anderen. Wenn Sie jedoch einen falschen Ausdruck eingeben, wird der Standardfall für immer wiederholt, auch wenn Sie 'q' eingeben.
Ich weiß, das Problem ist zu tun mit, wie ich die Variablen cin, unter Berücksichtigung der Operanden sind vom Typ double und auch etwas ist falsch mit der While-Schleife, aber ich kann nicht an Alternativen denken, und kann nicht scheinen zu finden eine Lösung anderswo.
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;
}
Siehe https://stackoverflow.com/questions/14907978/do-while-endlessly-looping-cout-ignores-cin. –
Lesen Sie die gesamte Zeile mit std :: getline und verwenden Sie dann std :: regex, um Benutzereingaben zu analysieren. –