Ergebnis 1 bis 10 von 10
  1. #1
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard Mein Programm schließt sich dauernd - Antwort

    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
    Geändert von blackberry (11.08.2009 um 15:58 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  2. #2
    Duck and Cover Avatar von $_staX
    Registriert seit
    27.07.2008
    Beiträge
    294

    Standard

    Oder Programm per Konsole starten, was auch unter windows geht
    Geändert von $_staX (02.06.2009 um 20:30 Uhr)

    First you duck and then you cover!
    #

  3. #3
    Stanley Jobson Avatar von sp33dwalker
    Registriert seit
    18.09.2008
    Beiträge
    688

    Standard

    Man braucht doch gar nicht die stdlib.h für system("PAUSE"); ,oder?

  4. #4
    Bad Times Virus Avatar von nathex
    Registriert seit
    21.07.2008
    Beiträge
    546

    Standard

    Man braucht doch gar nicht die stdlib.h für system("PAUSE"); ,oder?
    Doch, entweder braucht man cstdlib (aka. stdlib.h) oder iostream, welcher die Standard-Library direkt mit inkludiert
    Geändert von nathex (02.06.2009 um 21:11 Uhr)

  5. #5
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Was brauchst du denn dann?
    iostream?

    Der iostream-Header, den ich kenne inkludiert cstdlib, welches die C++ Variante von stdlib.h ist, welches uA. diese Funktion deklariert:
    int system ( const char * command );

    Zitat Zitat von nathex Beitrag anzeigen
    Nö, braucht man nicht!
    Eben doch.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  6. #6
    Bad Times Virus Avatar von nathex
    Registriert seit
    21.07.2008
    Beiträge
    546

    Standard

    Der iostream-Header, den ich kenne inkludiert cstdlib, welches die C++ Variante von stdlib.h ist, welches uA. diese Funktion deklariert:
    int system ( const char * command );
    Okay, dann sorry für die falsche Antwort. Ich habe bei einfachen Konsolenprogrammen immer nur den iostream-Header inkludiert, und wusste nicht, dass der in Zusammenhang mit cstdlib steht.
    Wieder was dazu gelernt Danke

    #edit: So habs korriegiert, jetzt müsste es doch stimmen, oder?
    Geändert von nathex (02.06.2009 um 21:12 Uhr)

  7. #7
    DateMake Dialer Avatar von busted_rebel
    Registriert seit
    21.03.2009
    Beiträge
    105

    Standard

    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)
    ich finde die 2te methode am besten
    und am einfachsten
    wahrscheinlich weil ich seit anfang meiner c++ kariere damit arbeite

    mfg

  8. #8
    Gesperrt
    Registriert seit
    04.06.2009
    Beiträge
    78

    Standard

    Danke für das TuT, da ich immer vergesse wie der Befehl heist

    Aber immernoch ist die 3. Variante am Besten!

  9. #9
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard

    warum nicht cin.get() aus iostream? funzt bei windows perfekt.

  10. #10
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Ok ist dabei (Punkt 4).

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Ähnliche Themen

  1. OllyDBG schließt sich nach dem Start immer..
    Von dette im Forum Anwendungssoftware
    Antworten: 11
    Letzter Beitrag: 20.10.2010, 17:34
  2. Programm schließt sich seltsam
    Von Brotmesser im Forum C, C++
    Antworten: 16
    Letzter Beitrag: 21.08.2008, 21:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •