Anfänger Frage...
-
Vielen Dank!
glg.
-
Hi!
Sorry das ich noch einmal nerve...
Ich habe jetzt den Code verändert und das mit 'N' und 'B' klappt.#include <iostream> using namespace std; int main() { float Brutto, Netto, Mwstbetrag, a; char i; cout << "Bitte geben sie N oder B ein!" << endl; cin >> i; if(i== 'B') { cout << "Bitte geben Sie den Bruttobetrag ein!" << endl; cin >> Brutto; Netto= Brutto*20 /120; Mwstbetrag= Brutto-Netto; cout << "Nettobetrag: " << Netto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; return 0; } if(i== 'N') { cout << "Bitte geben Sie den Nettobetrag ein!" << endl; cin >> Netto; Brutto= Netto*20 /100; Mwstbetrag=Brutto-Netto; cout << "Bruttobetrag: " << Brutto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; return 0; } else { cout << "Ihre Eingabe war falsch! Bitte geben sie B oder N ein!" << endl; return 0; } }Aber auch wenn ich den Code so verändere wie hier beschrieben http://c-plusplus.net/forum/viewtopic-var-t-is-111042.html
Dann schließt sich das Fenster trozdem.Und wie kann man eine Endlosschleife erzeugen?
Damit man nach einem Durchgang wieder die Anweisung "Bitte geben sie N oder B ein!" kommt.Ich habe schon einige Threads durchgelesen, aber ich verstehe das irgendwie nicht...
Danke im Voraus

-
"Wir fügen am Ende des Programms noch eine weitere Anweisung ein, die auf einen Tastendruck des Benutzers wartet."
Das sehe ich in deinem Quellcode gerade nicht.
-
Ja ich weiß... ich habe es wieder gelöscht da es nicht funktioniert hat...
(Es hat sich wieder geschlossen)
-
#include <iostream> using namespace std; int main() { float Brutto, Netto, Mwstbetrag, a; char i; cout << "Bitte geben sie N oder B ein!" << endl; cin >> i; /* Da 'i' ja entweder 'B' oder 'N' sein kann, solltest du else-if verwenden: Wenn du z.B. 'B' eingibst wird die if-Anweisung nach dem '{}' abgeborchen, und es wird danach weiter gemacht. Wenn du es ohne else-if machst (wie im Moment) wird auf beides ('B' und 'N') geprüft, was unnötig ist, da ja immer nur 1 in Frage kommt. */ if(i == 'B') { cout << "Bitte geben Sie den Bruttobetrag ein!" << endl; cin >> Brutto; Netto= Brutto*20 /120; Mwstbetrag= Brutto-Netto; cout << "Nettobetrag: " << Netto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else if(i == 'N') { cout << "Bitte geben Sie den Nettobetrag ein!" << endl; cin >> Netto; Brutto= Netto*20 /100; Mwstbetrag=Brutto-Netto; cout << "Bruttobetrag: " << Brutto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else { cout << "Ihre Eingabe war falsch! Bitte geben sie B oder N ein!" << endl; } /* Eine einfache Lösung um auf einen Tastendruck zu warten. Kann zu Problemen führen, wenn im Puffer noch ein Zeichen steckt. */ getchar(); /* Die return-Aweisung ist nur 1x in einer Funktion zu schreiben, wenn der Ausdruck hinter return immer der gleiche ist. */ return 0; }/* Wenn noch Zeichen im Puffer sind kannst du sie z.B. so verwerfen. */ cin.sync(); // Die noch vorhandenen Zeichen im Puffer verwerfen. cin.get(); // Wartet auf Tastendruck. /* In dem oben geposteten Link findest du auch noch andere Möglichkeiten. Es ist nicht gesagt, dass alle Möglichkeiten funktionieren :P */
-
Ich versteh das nicht... es schließt sich noch immer...und wiederholt nicht.
Könnte es vielleicht am Compiler liegen? Ich benutze Dev C++.
Aber danke für die anschauliche Erklärung!
-
poste mal den kompetten code, der net geht.
-
Ok es geht jetzt das, das Fenster sich nicht gleich schließt.
#include <iostream> using namespace std; int main() { float Brutto, Netto, Mwstbetrag, a; char i; cout << "Bitte geben sie N oder B ein!" << endl; cin >> i; if(i == 'B') { cout << "Bitte geben Sie den Bruttobetrag ein!" << endl; cin >> Brutto; Netto= Brutto*20 /120; Mwstbetrag= Brutto-Netto; cout << "Nettobetrag: " << Netto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else if(i == 'N') { cout << "Bitte geben Sie den Nettobetrag ein!" << endl; cin >> Netto; Brutto= Netto*20 /100; Mwstbetrag=Brutto-Netto; cout << "Bruttobetrag: " << Brutto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else { cout << "Ihre Eingabe war falsch! Bitte geben sie B oder N ein!" << endl; } getchar(); cin.sync(); cin.get(); return 0; }Und wie kann man es machen das es in einer Endlosschleife läuft?
-
Von einer Endlosschleife ist natürlich abzuraten, weil, wie der Name schon sagt, sie endlos ist... dann musst du das Programm ja abkacken lassen...
Für Wiederholungen benutzt man Schleife.
Es gibt 2 Arten von Schleifen:
- Kopfgesteuerte: Es wird vor dem Schleifendurchgang etwas geprüft (for,while).
- Fußgesteuerte: Es wird nach dem Schleifendurchgang etwas geprüft (do-while).Die fußgesteuerte Schleife läuft demnach immer min.1x durch.
#include <iostream> using namespace std; int main() { float Brutto, Netto, Mwstbetrag, a; char i; do { cout << "Bitte geben sie N, B oder E ein!" << endl; cin >> i; if(i == 'B') { cout << "Bitte geben Sie den Bruttobetrag ein!" << endl; cin >> Brutto; Netto= Brutto*20 /120; Mwstbetrag= Brutto-Netto; cout << "Nettobetrag: " << Netto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else if(i == 'N') { cout << "Bitte geben Sie den Nettobetrag ein!" << endl; cin >> Netto; Brutto= Netto*20 /100; Mwstbetrag=Brutto-Netto; cout << "Bruttobetrag: " << Brutto << endl; cout << "Mwstbetrag: " << Mwstbetrag << endl; } else if(i == 'E') { cout << "Exit"; } else { cout << "Ihre Eingabe war falsch! Bitte geben sie B oder N ein!" << endl; } } while(i != 'E'); cin.sync(); cin.get(); return 0; }
-
Danke!

Jetzt verstehe ich auch wie das geht

Nochmals danke!