Probleme nach cin
-
Hallo.
Ich habe das Problem, dass nach dem Verwenden der cin-Anweisung das Programm sofort beendet und trotz getchar()-Anweisung der Bildschirm nicht erhalten bleibt.
Programmcode:
#include <iostream.h> main () { int a, b; cout << "Geben Sie die erste Zahl ein: " << endl; cin >> a; cout << "Geben Sie die zweite Zahl ein: " << endl; cin >> b; cout << "Sie haben die Zahlen " << a << " und " << b << " eingegeben." << endl; cout << "hallo" << endl; getchar(); }Nachdem ich die zweite Eingabe mit Enter bestätigt habe, wird keine der cout-Anweisungen mehr angezeigt, weil sich das Fenster sofort schließt.
Woran liegt das und wie kann ich das Problem verhindern?
Freundliche Grüße,
Leader87.
-
also ganz einfach geändert
#include <iostream> #include <conio> using namespace std; int main () { int a, b; cout << "Geben Sie die erste Zahl ein: " << endl; cin >> a; cout << "Geben Sie die zweite Zahl ein: " << endl; cin >> b; cout << "Sie haben die Zahlen " << a << " und " << b << " eingegeben." << endl; cout << "hallo" << endl; getch(); return 0; }aber bitte iostream und using namespace std;
und es sollte eigentlich int main() heißen
-
Dein Problem ist recht einfach - getch() liest das nächste Zeichen aus dem Eingabepuffer, istream::operator>>() liest nur so weit, wie es die Eingabe interpretieren kann - also bleibt nach dem "cin>>b;" noch das Enter im Puffer zurück und wird von getch() abgefangen.
Zur Lösung mußt du den Puffer von Hand aufrufen, bevor du getch() verwendest (btw, in C++ solltest du lieber cin.get() nehmen) - dazu gibt es die Methode ignore().