Läuft nicht...



  • Ist das Buch vielleicht ein bissl älter? In DOS-Zeiten hättest
    du die Ausgabe noch zu sehen bekommen, da du das Programm aus der
    (immer offenen) Eingabeaufforderung von DOS aufgerufen hättest. Der
    Text wäre dann nicht verschwunden.



  • Jonn schrieb:

    Hallo, ich habe mir gerade ein Tutorial über C++ durchgelesen und möchte jetzt selbst herumprobieren.

    Dein Tutorial ist sehr veraltet, du solltest folgendes Tutorial dir lieber mal anschauen

    http://www.schornboeck.net/ckurs/index.htm



  • Jonn schrieb:

    Okay, danke, mit "getch()" funktioniert es. Aber in meinem Buch (Jetzt lerne ich C++) steht das Beispiel genaso wie oben gezeigt. Warum geht das also nicht? Liegt das an dem Borland Builder?

    "Jetzt lerne ich C++" von M&T nehme ich an?! Welche Auflage denn?(meine is von 2000)
    Ich habe das Buch nämlich auch und da steht das ganze schonmal so:

    #include <iostream.h>
    
    int main()
    {
    cout << "Hello World!\n";
    return 0;
    }
    

    Auch nit ganz ok, aber besser 😉

    Un zum rest is nix mehr anzufügen ^^



  • Ja, das Buch von M+T.



  • Die Standard-Freaks missbilligen getch() wegen der conio.h, haben aber selbst nichts Vergleichbares zu bieten. Daher trauen sich die Buchautoren nicht, dies in ihre Progamme aufzunehmen, weder getch() noch ein selbst entwickeltes wait(). Eine leicht schizophrene Situation.



  • Mit

    cin.get();
    

    sollte auch gewartet werden. Es muss allerdings <Enter> gedrückt werden um das Programm zu beenden.

    Code-Hacker



  • Nein, cin.get() reicht leider nicht immer aus. Siehe FAQ.
    Hier die ausführliche Version zum besseren Verständnis:

    #include <iostream>
    
    #include <iostream>
    
    void wait()
    {
        std::cin.clear();
    
        std::streambuf* pbuf = std::cin.rdbuf();
        std::streamsize size = pbuf->in_avail();
        std::cin.ignore(size);
    
        std::cin.get();
    }
    
    int main()
    {
        wait();
    }
    


  • Ist aber ein Windows/Konsolen-spezifisches Problem. Bei Linux ruft man das Programm direkt in der Konsole auf.



  • .. schrieb:

    Nein, cin.get() reicht leider nicht immer aus. Siehe FAQ.

    Das habe ich ja nicht gesagt, also das es immer ausreicht. Ich wusste nur das es geht, dass es nicht immer ausreicht wusste ich auch, nur wusste ich leider nicht wie man das behebt und habe es absichtlich nicht erwähnt *g*, jetzt weiß ich es ja, dank dir und dem Thread von falky (wobei ich das nicht getestet habe von ihm). 🙂

    Code-Hacker



  • ok, nur der vollständigkeit halber:

    Procyon schrieb:

    dann muss auch das return 0 zurückgeben und nicht gar nix:

    return(0);
    

    in main darf das weggelassen werden.
    Und noch ein Link zum Thema cin/Buffer leeren/auf Enter warten 🙂


Anmelden zum Antworten