Ranes20 Geschrieben 8. August 2001 Geschrieben 8. August 2001 Hallo ! Ich habe mal wieder ein Problem Und zwar ... wenn ich ein C Programm fertig geschrieben habe und dann die .exe Datei ausführen möchte dann öffnet sich die MSDos Eingabeaufforderung *ganz klar* aber schließt sich auch wieder sofort. Das Programm läuft also ganz schnell ab (man sieht es kaum) und dann schließt sich das Fenster wieder. Das nervt unheimlich, da ich dehalb immer manuell das MSDOS Fenster öffnen muß und manuell im DOS-fenster das Programm aufrufen muß. Gibt es dafür ein spezielle Einstellung das das nicht mehr passiert???? Danke für eure Tips Bis dann Zitieren
gugelhupf Geschrieben 8. August 2001 Geschrieben 8. August 2001 Also wenn du nicht mit VC arbeitest, bau doch einfach einen getch() am Schluss des Progs ein. gruß fredl Zitieren
DanielH Geschrieben 8. August 2001 Geschrieben 8. August 2001 Hi, oder include <stdlib.h> (oder wars stdio.h ) und dann an das Ende system("pause"). das erzeugt die Aufforderung eine beliebige Taste zu drücken. MfG Zitieren
Netstrike Geschrieben 8. August 2001 Geschrieben 8. August 2001 #include <stdio.h> getch(); oder getchar(); ans ende setzten und fertig Zitieren
haddock Geschrieben 9. August 2001 Geschrieben 9. August 2001 a) wenn Du Konsolenprogramme schreibst, spricht nix dagegen, das DOS-Fenster permanent offen zu haben - ob Du in den Explorer wechselst, um eine .exe anzuklicken oder in ein DOS-Fenster ist fast egal (IMHO gehts im DOS-Fenster schneller, Tipper vs. Klicker). echte Betriebssysteme haben in der Eingabeaufforderung eine history, die die vorher eingegebenen Befehle behält. Gibts schon für 16bit DOS als "doskey". c) das ist besonders dann nützlich, wenn man einem Programm Aufrufparameter mitgibt, und das ist bei Konsolenanwendungen öfter der Fall. d) ansonsten natürlich wie vorgeschlagen, vielleicht sogar so: #ifdef _KLICKEN_ puts("...weiter mit Taste...\n"); getchar(); #endif Viel Spaß, Der Käptn Zitieren
Ranes20 Geschrieben 13. August 2001 Autor Geschrieben 13. August 2001 Das von captain haddock gefällt mir ganz gut, obwohl es irgendwie komisch aussieht wenn immer am ende eines Programms die Nachricht kommt ... Bitte drücken Sie ein Taste etc. .... ! Aber vielen Dank da kann ich mal nen paar Sachen ausprobieren. Ich dachte immer das es an der MSDOS Eingabeaufforderung liegt Aber trotzdem die frage. Bei mir in der Schule arbeiten wir auch mit dem Borland C++ Compiler und wenn ich dort ein Programm schreibe und es dann in der MSDOS Eingabeaufforderung öffne dann schließt sich das Fenster nicht nach dem das Programm abgelaufen ist sondern bleibt stehen, obwohl ich nicht diesen Befehl mit getchar .... benutzt habe ??? Wie kann denn das sein ? Greetings Zitieren
Bubble Geschrieben 14. August 2001 Geschrieben 14. August 2001 Also wenn Du ein MS-DOS Programm startest, bleibt nach dem Ende das Fenster offen. Wenn Du eine Windows-Konsolenapplikation startest, wird das Fenster der Windows-Konsolanapplikation nach deren Ende geschlossen. Wenn Du eine Konsolenapplikation aus Visual C++ heraus startest, dann bleibt sie aber nach dem Beenden offen. Ich glaube aber, das man irgendwo auch einstellen kann, ob das Fenster offen bleiben soll oder nicht. Bubble <FONT COLOR="#a62a2a" SIZE="1">[ 14. August 2001 03:26: Beitrag 3 mal editiert, zuletzt von Bubble ]</font> Zitieren
haddock Geschrieben 16. August 2001 Geschrieben 16. August 2001 Der Trick besteht in der bedingten Kompilierung - schau dir mal das Thema Präprozessoranweisungen an. Das bedeutet, daß der Compiler bestimmte code-Abschnitte nur kompiliert, wenn ein bestimmtes Symbol definiert ist. Am Anfang Deines Programms schreibst du eine Zeile #define _KLICKEN_ dadurch wird das angegebene Symbol definiert, nur wenn dieses definiert ist, wird der in der Anweisung #ifdef _KLICKEN_ ... #endif enthaltene code mit übersetzt. Kommentierst du die Zeile aus, rauscht dein Programm einfach durch. Klaro ? Der Käptn Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.