Fenster schließt sich sofort wieder



  • Da ich nicht weiß ob es am Compiler liegt oder am Betriebssystem XP, poste ich es hier mal:

    Jedesmal wenn ich eine mit Dev-C++ erstelle .exe Datei starte (z.B. das Hello world Programm), öffnet sich das Fenster und schließt sich sofort wieder. Ich bin eigentlich sicher, dass das Programm an sich richtig abläuft, jedoch kann man es nicht sehen weil er es so schnell auch wieder beendet ...
    Kann man das beheben und woran liegt das? Ich hab nämlich keine Lust an jedes Programm-Ende noch ein Aufforderung zu hängen "Drücken Sie ENTER um zu beenden" nur damit ich die Zeile davor sehen kann 😉



  • dieses hunderttausendmal in diesem forum 😉 diskutierte phänomen liegt daran, daß dein programm sich einfach beendet 😉

    also mach mal sowas:

    int main(){
    cout<<"hallo";

    cin.get();
    //oder: int i; cin>>i;
    }



  • ps: oder folgenden wunderbaren trick:

    #include <conio.h> //nicht standard 😉

    int main(){
    ....

    getch();
    }

    ps: und hier ein guter link zum konsolenfaq .... schau da mal rein ..
    http://www.c-plusplus.net/forum/viewforum.php?f=20&sid=33c04c23e97b0dc2523561a0e4c69aa3



  • Vielen Dank 🙂 Klappt. Da ichs von meinem Delphi-Forum gewohnt bin, dass man Leute auf schon bestehende Themen hinweist 😉 hab ich zwar vorher schon die Suchfunktion betätigt, jedoch anscheinend die falschen Begriffe benutzt 🙄

    /e: uh peinlich, hab gar nicht gesehen, dass es ein Konsolen-FAQ gibt 🙄 😕



  • macht nix 😉

    interessante fragen zu dos und win32 konsole im konsolenforum stellen.
    sprich: alles was so farbe, conio.h .. ladida angeht, und kein sprachstandard ist.

    fragen zu ansi c im ansi c forum und c++ im c++ forum.

    achtung: c++ler sind immer gestresst, wenn dann fragen zur conio (nicht standard) oder farbe oder winapi kommen... sprache ist das eine, betriebssystemabhängige sachen das andere...

    na ja.. ich labere heute so rum.. so long.



  • Elise bevorzugt wie ich selbst auch das einfache getch() aus der conio.h, die aber jemand mit Betriebssystem Linux oder ... nicht kennt. Daher wollen C++-ler, dass man etwas mit cin macht. Leider ist das etwas kompliziert geraten, so dass man es einfach in eine eigene Funktion wait() packt:

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

Anmelden zum Antworten