Bessere Alternative zu exit(-1)?



  • Hallo,

    ich beschäftige mich zur zeit ebenfalls mit einem Consolenproggi.
    Läuft alles ganz gut aber das schließen der Console durch Code, also wenn eine bestimmte Bedingung eintritt funktioniert nicht so richtig.
    Wenn ich exit(-1) ankucke dann kommt zuerst der dämliche Satz "Press any key to continue", erst wenn dann wieder eine Taste gedrückt wird verschwindet die Console.
    Kennt jemand von euch einen Ausweg, also eine Bedingung wird ausgelöst z.B.: x = 0 ...Befehle... und zack die console ist weg?

    Danke euch allen für die Hilfe!
    Questioneer



  • Hi,

    das sollte funzen:

    SetConsoleTitle("Cool name...!");
    	HWND hwnd = FindWindow (NULL, "Cool name...!");
    	SendMessage(hwnd, WM_CLOSE, 0, 0 );
    

    😉 Shadoweater



  • Startest du das Programm aus einer Entwicklungsumgebung heraus, oder per Doppelklick, oder in einer anderen offenen Konsole?

    Die meisten Entwicklungsumgebungen halten das Fenster dann nämlich noch offen und warten auf einen Tastendruck.



  • Questioneer schrieb:

    Hallo,

    ich beschäftige mich zur zeit ebenfalls mit einem Consolenproggi.
    Läuft alles ganz gut aber das schließen der Console durch Code, also wenn eine bestimmte Bedingung eintritt funktioniert nicht so richtig.
    Wenn ich exit(-1) ankucke dann kommt zuerst der dämliche Satz "Press any key to continue", erst wenn dann wieder eine Taste gedrückt wird verschwindet die Console.
    Kennt jemand von euch einen Ausweg, also eine Bedingung wird ausgelöst z.B.: x = 0 ...Befehle... und zack die console ist weg?

    Danke euch allen für die Hilfe!
    Questioneer

    Warum willst du das? Wenn deine Anwendung einen Fehler erzeugt, dann hätte ich gerne vorm Beenden einen Hinweis darauf und nicht einfach ein verschwundenes Fenster. Wenn ich die Anwendung beende und danach noch Enter drücken muss, dann kann ich damit leben...
    Verschwende doch deine Zeit nicht mit so einem Unsinn!



  • Questioneer schrieb:

    Kennt jemand von euch einen Ausweg, also eine Bedingung wird ausgelöst z.B.: x = 0 ...Befehle... und zack die console ist weg?

    ExitProcess(ExitCode)



  • es gibt nur eine Funktion, die ein Programm beenden sollte: die main-Funktion! Und da reicht ein simples return x;



  • Hi,

    danke für eure Hilfe, die Version von ShadowEater funktioniert super!

    Gruß
    Questioneer


Log in to reply