problem mit Konsole schließen



  • hi,
    warum kann ich mit aus der Funktion mit system("EXIT"); die Konsole nicht schließen?

    [cpp]
    void Fortgang() {
    	unsigned short int weiter;
    	cout << "Was moechtest du nun machen? Rechenart wechseln[1] - Programm verlassen[2]" << endl;
    	cout << "Deine Entscheidung:";
    	cin >> weiter;
    	if(weiter == 1) {
    		system("cls");
    	}
    	else if(weiter == 2) {
    		system("EXIT");
    	}
    }
    [/cpp]
    

    Kehrt das Programm nach system("EXIT"); trotzdem zur Aufrufenden Funktion zurück? Anders könnte ich mir das nicht erklären.
    Hab grad gemerkt, dass das das falsche Forum ist, kann ich den Beitrag selbst verschieben?

    Danke!



  • Du kannst die Funktion "exit(int staus_code);" verwenden um dein Programm zu beenden. Das ist dann auch wenigstens portabel. Außerdem würde es mich persönlich stören, wenn ich eine Kommandozeile öffne und mir jedesmal bei einem Fehler die Konsole geschlossen wird (also, wenn man das Programm nicht per Doppelklick startet, sondern so wie es sich eigentlich für eine Konsolenanwendung gehört über die Eingabeaufforderung bzw. Shell).
    Mit exit wird wenigstens nur die Anwendung beendet, die Eingabeauffoderung bleibt aber geöffnet (sofern, wie bereits erwähnt, das Programm nicht mit Doppelklick gestartet wurde).

    Nein, nur Mods können Beiträge/Threads löschen und verschieben.



  • Programm öffne ich durch Doppelklick, andere find ich viel zu umständlich.
    Aber diese Funktion funktioniert irgendwie nicht. Habe das jetzt so gemacht:

    [cpp]
    //Funktion die Fortgang abfragt und Konsole leert
    void Fortgang() {
    	unsigned short int weiter;
    	cout << "Was moechtest du nun machen? Rechenart wechseln[1] - Programm verlassen[2]" << endl;
    	cout << "Deine Entscheidung:";
    	cin >> weiter;
    	if(weiter == 1) {
    		system("cls");
    	}
    	else if(weiter == 2) {
    		exit(int staus_code);
    	}
    }
    [/cpp]
    

    Dann bekomme ich folgende Fehler:
    error C2144: syntax error : 'int' should be preceded by ')'
    error C2661: 'exit' : no overloaded function takes 0 arguments
    error C2059: syntax error : ')'

    ??? Danke für weitere Hilfe!



  • Du solltest dich etwas mehr mit den Grundlagen beschäftigen. Vellas hat dir die Deklaration von exit gegeben.
    Der Aufruf sieht dann z.Bsp. so aus

    exit(0);
    

    exit beendet das Programm ruft aber unter anderem keine Destruktoren auf. Das kann zu Problemen führen.


Anmelden zum Antworten