if abfrage fehlerhaft. bitte um hilfe
-
hay leute. ich bin relativ neu bei c++, vorher hatte ich mir die basics von java beigebracht bin aber dann auf c++ umgestiegen. jedenfalls habe ich bei dem unten stehenden programm einen bedingungsfehler ab der zeile mit der while schleife. die zweige in den if abfragen werden nie erreicht obwohl sie zutreffen. ja das ist ein simpler taschenrechner zum üben:D
wäre nice falls mir da wer helfen könnte. danke schonmal im voraus:)#include <iostream> using namespace std; int main() { int ersteeingabe; int zweiteeingabe; char rechenzeichen; int ergebnis; bool überprüfung = true; int ende = 0; //erste abfrage nach den eingabewerten std::cout << "Bitte ersten Wert eingeben dann Rechenzeichen dann letzten Wert eingeben\n"; std::cin >> ersteeingabe >> rechenzeichen >> zweiteeingabe; switch (rechenzeichen) { case '+': ergebnis = '0'; ergebnis = ersteeingabe + zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '-': ergebnis = '0'; ergebnis = ersteeingabe - zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '*': ergebnis = '0'; ergebnis = ersteeingabe * zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '/': ergebnis = '0'; ergebnis = ersteeingabe / zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; default: std::cout << "Falsche eingabe"; } //zweiter und dauerhafter durchlauf. while (überprüfung) { std::cout << "Bitte \"1\" eingeben falls eine neue eingabe getätigt werden soll \"0\" um das Programm zu beenden\n"; std::cin >> ende; std:cout << ende; //if überprüfung ist fehlerhaft if (ende == '0') { überprüfung = false; } else if (ende == '1'){ std::cout << "Bitte ersten Wert eingeben dann Rechenzeichen dann letzten Wert eingeben"; std::cin >> ersteeingabe >> rechenzeichen >> zweiteeingabe; switch (rechenzeichen) { case '+': ergebnis = '0'; ergebnis = ersteeingabe + zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '-': ergebnis = '0'; ergebnis = ersteeingabe - zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '*': ergebnis = '0'; ergebnis = ersteeingabe * zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; case '/': ergebnis = '0'; ergebnis = ersteeingabe / zweiteeingabe; std::cout << "Das Ergebnis ist " << ergebnis << " !\n"; break; default: std::cout << "Falsche eingabe"; } } } }
-
Du musst zwischen den int und char Typen unterscheiden, bzw. zwischen '0' und 0
-
Lass bei Integern die '' weg.
Also z.B. in den Zeilen 17, 22, 45, 48, etc.
-
vielen dank fürs antworten. da hatte ich doch mal nen blöden fehler^^ naja aus fehler lernt man. danke