noob versteht die welt nicht mehr



  • hi!

    ich hab hier ein c++ code aus enem workshop aus dem i net nur leider will der nicht wie ich das will..

    #include<iostream>
      using namespace std;
    
      int main()
      {
        int zahl1;
        int zahl2;
        cout<<"Welche zwei Zahlen sollen addiert werden?\n";
        cin>>zahl1;
        cin>>zahl2;
        cout<<zahl1<<" + "<<zahl2<<" ergibt "<<zahl1+zahl2<<"\n";
        cin.get();
      }
    

    das is ein simpler code ich versteh auch alles aber wenn es dann kompilliert ist und ich es ausführe geb ich halt die erste dann die zweite zahle ein und dann is es aus ...

    soll nicht eigentlich der befehl cin.get(); dafür sorgen das sich das fenster erst schließt wenn man enter drückt???



  • Das stimmt schon, mit cin.get(). Das Problem ist, dass der Eingabepuffer noch nicht leer ist. cin.get() kann also ein Zeichen aus dem Puffer lesen und das Programm wird so schnell beendet, dass Du die Ausgabe nicht mehr siehst.
    Wenn Du das Programm wie folgt abänderst, klappts':

    #include<iostream> 
      using namespace std; 
    
      int main() 
      { 
        int zahl1; 
        int zahl2; 
        cout<<"Welche zwei Zahlen sollen addiert werden?\n"; 
        cin>>zahl1; 
        cin>>zahl2; 
        cout<<zahl1<<" + "<<zahl2<<" ergibt "<<zahl1+zahl2<<"\n";
    
        cin.sync();  // Eingabepuffer löschen  
        cin.clear(); // Fehlerflags löschen
    
        cin.get(); 
      }
    

    Die Funktion sync() löscht alle Zeichen, die im Eingabepuffer sind, die Funktion clear() löscht evtl. gesetzte Fehlerflags.

    Gruss,
    Andreas


Anmelden zum Antworten