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().


Anmelden zum Antworten