Dev-C++ Fenster blinkt nur kurz auf???



  • Möchtegern-Programmierer

    @Möchtegern-Programmierer: Lasst euch nicht entmutigen.

    Zunächst aktuellen Compiler beschaffen, der den C++-Standard (1998) befolgt.

    return 0 macht bezüglich des Rückgabewertes der Funktion main() vom Typ int Sinn, ist aber heute nicht wirklich notwendig(!), da moderne Compiler dies gemäß C++-Standard automatisch erledigen. Viele Progger mögen dennoch diese klassische Abschlusszeile.

    Aktuelle header beachten, also nicht #include <iostream.h>, sondern #include <iostream>. Dafür muss man sich um den Zugang zum namespace std kümmern. Da stecken diese Sachen nämlich alle drinnen. Also entweder std::cout oder besser öffnen mit using namespace std. Die alten C-Header sind da heute auch mit drinnen, dann wird aus math.h cmath, aus string.h cstring etc.

    <string> ist nicht string.h der Sprache C, sondern die C++-String-Klasse!

    Dann bleibt da noch die Geschichte mit dem Schließen des Konsolenfensters unter MS Windows (Unter Linux startet man in der Konsole mit ./name, das geht natürlich auch unter MS Windows direkt in der "DOS-Box"). Es gibt es die Möglichkeit des Pausierens mit conio.h und getch(), die ziemlich einfach ist. Unter Linux gibt es diese conio.h allerdings nicht, daher lehnen viele diesen Non-Standard-Header ab, aus Sicht der Standardisierung wohl zurecht. Also bleibt nur die eigene Funktion wait(). Hier die ausführliche Variante zum besseren Verständnis

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

    In einem anständigen Tutorial oder Buch sind diese Dinge klar gestellt.
    http://www.cpp-tutor.de/cpp/toc.htm





  • 🕶 schrieb:

    Möchtegern-Programmierer

    @Möchtegern-Programmierer: Lasst euch nicht entmutigen.

    Ich möchte hier niemand entmutigen. Etwas mehr Selbständigkeit wäre jedoch angebracht. Denn dieses Thema (Hilfe mein Program binkt nur kurz auf.) kommt scheinbar mehrfach die Woche.
    @🕶 mit einer kleinen Änderung könnte ich mit deiner funktion wait() ganz gut leben.

    void wait()
    {
    #ifdef DEBUG
        std::cin.clear();
    
     // std::cin.ignore( std::cin.rdbuf()->in_avail() ); 
        std::streambuf * pbuf = std::cin.rdbuf();
        std::streamsize size  = pbuf->in_avail(); 
        std::cin.ignore(size);
    
        std::cin.get();
    #endif
    }
    

    Hoffentlich habe ich mit meinem Statements niemand beleidigt, das war ganz bestimmt nicht meine Absicht.
    Kurt



  • Diesen Post gab es schon mindestens 100mal. Wie wärs ihn in die FAQ zu verschieben?

    MfG CSS



  • also ich habe ds gleiche problem, und habe auch alls probiert ws ihr geschrieben habt... aber es geht nicht, manchmal kommt ne meldung mit qwelldatei ist nicht kompiliert oder ds prog geht auf und dann gleich wieder zu... 😕 😕 hab keine ahnung ws ich noch machen soll...



  • normalerweise wenn du getch benutzt hast du keine probleme. nichtmal mit Dev-Cpp 🤡



  • getch() gehört zu conio.h. Diese Biliothek ist nicht Standard. Daher ist die Methode mit einer eigenen protablen wait-Funktion besser geeignet.



  • #include <iostream.h>
    #include <conio.h>
    void main()
    {
    cout<<"Hello, world!"<<endl;
    getch();
    }

    also wenn ich ds eingebe kommt nur ne fehlermeldung mit die Qwelldatei ist nicht kompiliert... 😞



  • cxpo schrieb:

    also wenn ich ds eingebe kommt nur ne fehlermeldung mit die Qwelldatei ist nicht kompiliert... 😞

    Wundert mich auch nicht, der Code ist falsch. Lies dir Seite 1 nochmal durch, und du wirst fündig.



  • #include <iostream> 
    using namespace std; 
    
    int main() 
    { 
        cout << "Hello, world!" << endl; 
        cin.get(); 
        return 0; 
    }
    

    ahh sry... also damit klappt es...
    danke nochmals



  • Seht doch in dei Konsolen-FAQ. SideWinder hat dort einen Support Beitrag verfasst.

    MFG CSS



  • #include <iostream>
    
    const char NL = '\n';
    
    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()
    {
        std::cout << "Hello, world!" << NL; 
        wait();
    }
    

Anmelden zum Antworten