[C++] Problem mit meinem Zeilenzähler
-
Hallo, Community!
In Zeile 14 wurde ein "Zeilenzähler" plaziert. Da er sich im "do-Block" befindet, kommt eine merkwürdige Ausgabe. Konkreter:
Eingabe von 3+2-1 im Programm ergibt:
Z1: 0+3+2-1
Z2: 3Z3: 5Z4: 4statt der gewünschten Ausgabe (ohne Zwischenergebnisse):
Z1: 0+3+2-1
Z2: 4PS: Ich bin zurzeit mit folgenden fertigkeiten vertraut: Basics, Variablen und Datentypen, Konstrollstrukturen, Funktionen und Methoden, Strukturen, Schleifen.
Folgende fertigkeiten lerne ich mir zurzeit an: Klassen und Zeiger.
Verwendetes Sachbuch: GoTo C++ Programmierung Andre Willms (Uralt aber gut)

Also bitte etwas entsprechendes.

Danke!EDIT:
Oh, falls das helfen soll das Programm soll ein kleiner Taschenrechner sein.
ProgrammCode:
#include<iostream> #include<cmath> using namespace std; int main(void) { float wert = 0, puffer = 0, i = 1; char befehl; do { cout<<"Z"<<i++<<": "<<puffer; cin>>befehl; switch(befehl) { case'+': cin>>wert; puffer += wert; break; case'-': cin>>wert; puffer -= wert; break; case'*': cin>>wert; puffer *= wert; break; case'/': cin>>wert; if(wert==0) { cout<<"Division durch 0 nicht definiert"<< endl; break; } else{} puffer /=wert; break; case'^': cin>>wert; puffer = pow(puffer, wert); break; case'w': cin>>wert; if(wert<0) { cout<<"Radizieren eines negativen Radikanden nicht definiert"<< endl; break; } else{} puffer = sqrt(wert); break; case'r': wert = 0; puffer = 0; break; case'c': system("cls"); break; default: cout<<"Ungueltiges Zeichen"<< endl; break; } } while(befehl != 'b'); }
-
Warte mit der Ausgabe auf einen Zeilenumbruch, wenn du einen Zeilenzähler willst. ( '\n' ).
-
drakon schrieb:
Warte mit der Ausgabe auf einen Zeilenumbruch, wenn du einen Zeilenzähler willst. ( '\n' ).
Und wie mach ich das mit den Zwischenergebnissen? Die sollten ja nicht erscheinen

EDIT:
Z1: 0+2+3-1
// Hier fehlts aber!!!
Z2: 2 <-- Weg damit
Z3: 5 <-- Weg damit
Z4: 4do { cout<<"\n"; cout<<"Z"<<i++<<": "<<puffer; cin>>befehl;
-
Individual Code schrieb:
drakon schrieb:
Warte mit der Ausgabe auf einen Zeilenumbruch, wenn du einen Zeilenzähler willst. ( '\n' ).
Und wie mach ich das mit den Zwischenergebnissen? Die sollten ja nicht erscheinen

EDIT:
Z1: 0+2+3-1
// Hier fehlts aber!!!
Z2: 2 <-- Weg damit
Z3: 5 <-- Weg damit
Z4: 4Lies einfach mit
std::getline(std::cin, eineVariabelFuerDenWert);eine ganze Zeile ein und nutze diese als Berechnungsgrundlage. Anschließend gibst du erst das Ergebnis aus... Du wirst vermutlich die Funktion
isdigitbenötigen, um die Zahlen aus dem String zu bekommen