Endet automatisch



  • warum endet des programm, nachedm ich 3 mal enter gedrückt habe, obwohl es zutun hat??

    Weil es nach der ausgabe nix mehr zu tun hat und danach fertich ist und sich das konsolenfenster dann schließt.

    bastel dir einfach ein cin.get() hinten dran, dann wird das Programm erst nach einer Eingabe beendet.

    EDIT: ooops...naja, jetzt stehts zweimal da 😉



  • Kann mir jetzt noch jemand erklären warum noch des cin>>zahl1 stehe muss anstatt cin.get() und warum des return 0 dasteht



  • #include <iostream>
    
    // using namespace std; wiederspricht in den meisten Fällen dem Sinn von 
    // namespaces. D.h. direkt abgewöhnen und lieber immer std:: vor eine Funktion 
    // aus diesem namespace schreiben ...
    
    int main()
    {
        int zahl1 = 0;
        int zahl2 = 0;
        int zahl3 = 0;
    
        std::cout << "Bitte eine Zahl eingeben" << std::endl;
        std::cin >> zahl1;
        std::cout << "Bitte noch eine Zahl eingeben" << std::endl;
        std::cin >> zahl2;
        std::cout << "Bitte eine letzte Zahl eingeben" << std::endl;
        std::cin >> zahl3;
        std::cout << "Die Ausgabe lautet: " << std::flush;
        std::cout << zahl1 << " " << zahl3 << " " << zahl2 << std::endl;
    
        std::cin.get(); // Nicht ganz korrekt so aber naja ... kann so schonmal
                        // vorkommen das es nicht funktioniert ... soll aber im 
                        // Falle das es funktioniert auf eine beliebige Eingabe 
                        // warten, wodurch das Programm erst geschlossen wird wenn
                        // du eine Taste drückst oder die Konsole schließt ...
    
        return 0; // Normalerweise wäre das notwendig, da die Funktion ja einen 
                  // integralen Rückgabewert hat. Nach dem ISO Std. handelt es sich
                  // bei der main Funktion allerdings um eine Ausnahme, wodurch du 
                  // da return 0; durchaus weglassen kannst.
    }
    


  • KAnn man des cin >> zahl1; allgemein definieren, weil des mit der zahl 1 bezieht sich ja auf des beispiel



  • BITTE HELFEN



  • Starte doch das Programm direkt aus einer Kommandozeile (oder wie das unter WIN heißt...)! Dann sparst du dir das ganze am Schluss.

    Du kannst auch einen Timer starten, der erst noch 10 sec wartet bevor das Terminal zugeht. Oder eine intensive Rechnung, oder ...

    Ich muss aber ehrlich zugeben, dass ich auch mit dem cin >> zahl ewig gebraucht habe, den Sinn zu verstehen...



  • Aer kann mir jemand des cin>>zahl1 erklären???



  • Schaue bitte in der Konsolenfaq unter "Schliessen des Konsolenfensters verhindern" (oder so aehnlich) Dort findest du alle noetigen Erklaerungen denke ich.

    @DEvil: using namespace findet meine Wenigkeit sehr wohl nuetzlich. Und ausser in Headern sollte man das schon benutzen denke ich, erspart extrem viel Schreibarbeit. Insbesondere wenn man nur den einen namespace nutzt.

    Alternativ auch

    using std::cout;
    using std::cin;
    

    Diese 1000 stds stoeren mich zumindest irgendwie ein bisschen beim Lesen.

    Naja, falls ich falsch liege bitte korrigieren.



  • Szymon Hurkacz schrieb:

    Aer kann mir jemand des cin>>zahl1 erklären???

    Schau mal auf www.cppreference.com oder den anderen hier angegebenen Tutorials nach - aber vielleicht hat jemand anderes Lust, Dir 3 Minuten Suche zu ersparen, indem er 20 Minuten schreibt.....

    Gruß,

    Simon2.

    P.S.: Steht auch in jeden C++-Buch.



  • Devil schrieb:

    // using namespace std; wiederspricht in den meisten Fällen dem Sinn von
    // namespaces. D.h. direkt abgewöhnen und lieber immer std:: vor eine Funktion
    // aus diesem namespace schreiben ...

    😮 😕 Was ist das denn für ein Gerücht?



  • edit: hab ausversehen in den falschen Thread geschrieben.
    Kann ich den Beitrag irgendwie löschen?



  • Wie gelang ich denn zu dem Konsolen faq



  • Auf der Hauptseite des Forums klickst du auf den Link FAQ/Archiv des Konsolen-Boards.



  • ÄH
    was soll ich machen wenn es immernoch schließt??

    #include <iostream>
        using namespace std;
    
        int main()
        {
            cout<<"Bitte geben Sie eine Zahl ein\n";
            int a;
            cin>>a;
            cout<<"Bitte geben Sie noch eine Zahl ein\n";
            int b;
            cin>>b;
            cout<<"Bitte geben Sie die letzte Zahl ein\n";
            int c;
            cin>>c;
    
            int max=a;
    
            if(b>max)
            {
                max=b;
            }
            if(c>max)
            {
                max=c;
            }
    
            int min=a;
    
            if(b<min)
            {
                min=b;
            }
            if(c<min)
            {
                min=c;
            }
    
            cout<<"Die größte Zahl ist "<<max<<" und die kleinste ist "<<min<<"\n";
        }
    

    Was soll ich hier machen damit es nicht schließt und wenn möglich den vorgang erkären



  • Hast du dir den erwähnten FAQ-Eintrag mal durchgelesen? Der sollte eigentlich alle deine Fragen beantworten.



  • Ja habe ich, des konsolenfenster schließt trotzdem



  • das^^



  • Dein Programm sieht aber nicht danach aus, als ob du das gelesene angewendet hättest 😉



  • Jetzt aber oder??

    #include <iostream>
        using namespace std;
    
        int main()
        {
            cout<<"Bitte geben Sie eine Zahl ein\n";
            int a;
            cin>>a;
            cout<<"Bitte geben Sie noch eine Zahl ein\n";
            int b;
            cin>>b;
            cout<<"Bitte geben Sie die letzte Zahl ein\n";
            int c;
            cin>>c;
    
            int max=a;
    
            if(b>max)
            {
                max=b;
            }
            if(c>max)
            {
                max=c;
            }
    
            int min=a;
    
            if(b<min)
            {
                min=b;
            }
            if(c<min)
            {
                min=c;
            }
    
            cout<<"Die größte Zahl ist "<<max<<" und die kleinste ist "<<min<<"\n";
        }
    #include <iostream>
    
    void wait ()
    {
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin.get();
    }
    


  • Nein, immer noch nicht. Sei mir nicht böse, aber du solltest dir ein C++Grundlagentutorial durchlesen.
    Du mußt die wait-Funktion auch innerhalb der main aufrufen. iostream muß auch nur einmal inkludiert werden.


Anmelden zum Antworten