Ich kann zwar nicht ganz fassen, dass ich das hier zum Sticky machen muss, aber hier ist mein Standpunkt:
Es wird immer und immer wieder gefragt warum sich ein Konsolenprogramm unter Windows sofort (bzw. nach vollendeter Eingabe) wieder schließt.
Da diese Frage ebenfalls schon x-Mal beantwortet wurde, werde ich in Zukunft solche Fragen einfach löschen und ggf. eine Verwarnung aussprechen (Grundlage; § 2.1, § 2.4: Boardregeln).
Folgende Resultate erhielt ich (02.06.2009, 20:47) bei der Suche nach:
programm schließt sich
wobei vBulletin zu "sich" folgendes sagte:
Die folgenden Wörter sind sehr allgemein und wurden in der Suchanfrage ignoriert: sich
http://free-hack.com/showpost.php?p=272306&postcount=1
http://free-hack.com/showpost.php?p=179119&postcount=1
http://free-hack.com/showpost.php?p=131047&postcount=1
http://free-hack.com/showpost.php?p=43996&postcount=1
http://free-hack.com/showpost.php?p=11221&postcount=1
(es gibt mehr - uA. deshalb, weil so mancher User keinen treffenden Titel wählt)
Wer sich nicht die Mühe machen will jeden dieser Threads einzeln durchzuarbeiten kann gerne weiterlesen:
Das Programm schließt sich weil die Ausführung zu ende ist.
Wieso sollte es danach auch offen bleiben?
Um das zu verhindern kann man folgende Codes benutzen (es gibt natürlich sehr viele Lösungen - die folgenden sind nur ein paar davon):
1)
#include <stdlib.h>
bei den Include's einfügen und
system("PAUSE");
( oder system("PAUSE > NUL"); )
am Ende der main-Funktion einfügen.
(ACHTUNG: dieser Code ist nur für Windows, da das PAUSE-Programm auf anderen Systemen nicht existiert - Außerdem angreifbar mit Path-Attacks - sollte vermieden werden)
2)
#include <conio.h>
bei den Include's einfügen und
getch();
am Ende der main-Funktion einfügen.
(ACHTUNG: der Header conio.h und die in ihm deklarierte Funktion getch() sind kein Standard - dieser Code wird auf nicht-Windows-Systemen nicht compilieren)
3)
#include <stdio.h>
bei den Include's einfügen und
getc(stdin);
oder
getchar();
am Ende der main-Funktion einfügen.
(diese Variante sollte auf allen Systemen funktionieren, wartet aber gezielt auf das Drücken der ENTER-Taste - deshalb habe ich diese Methode zuletzt aufgeführt)
4) vorgeschlagen von wacked ( http://free-hack.com/member.php?u=54497 )
#include <iostream.h>
bei den Include's einfügen und
std::cin.get();
oder:
using namespace std; (nach den Include's einfügen)
und
cin.get();
am Ende der main-Funktion einfügen.
(ACHTUNG: iostream macht euer Programm sehr groß. Wenn ihr iostream jedoch sowieso einsetzt macht das natürlich keinen Unterschied. Sollte auf allen Systemen funktionieren)
______________________________
Die Windows-spezifischen Lösungen stehen oben, da Linux-Benutzer ihre Programme ja sowieso über die Befehlszeile aufrufen und dieses Problem nicht haben werden.
mfG. BlackBerry