2012-04-06 12 views
-2

Mögliche Duplizieren:
C++ beginner, execution window disappears quicklyC Programmfehler

Ich bin Anfänger in C-Programmierung. Aber wenn ich das Programm kompiliere, tritt ein Problem auf. Der Compiler erstellt eine EXE für das Programm, aber wenn ich es öffne, erscheint es und verschwindet in einer Sekunde.

Dieser Fehler kann durch Zugabe von

SYSTEM("PAUSE"); 

am Ende des Programms gestoppt werden. Aber es wird schaffen eine

beliebige Taste drücken

am Ende des Programms fortzusetzen. Was ist der Fehler von mir? Warum erscheint und verschwindet das Programm in Eile?

Wie höre ich auf, ohne die Funktion system() hinzuzufügen? Ich benutze den GCC-Compiler.

+1

Warum soll nicht in Eile verschwindet das Programm? :) –

+0

Lernen Sie von einem besseren Buch und verwenden Sie eine bessere IDE. – dreamlax

+0

@PavanManjunath: ICH KANN SEHEN, WAS IN IHM IST, weil es in einer Eile nur in 1 Millisekunde endet – gokul

Antwort

3

Das ist kein Fehler. Das Programm wird beendet, nachdem der von Ihnen programmierte Code beendet wurde. Wenn Sie etwas eingeben möchten, versuchen Sie zum Beispiel scanf.

0

Es ist kein Fehler. Das Programm wird ausgeführt und verschwindet, wenn die Ausführung beendet ist. statt Doppel Klirren

+0

wie man thAT stoppt? – gokul

+0

Wenn Sie das Programm beenden möchten, nachdem es seinen eigentlichen Zweck erfüllt hat, fügen Sie den Aufruf 'system()' hinzu, der (logisch) besser ist als die Verwendung von Eingabefunktionen wie 'getchar()' oder 'scanf()'. – 0xc0de

1

Führen Sie das Programm ein DOS-Fenster bilden, wenn Sie nicht wollen, eine Pause oder scanf

1

Dies ist ein normales Verhalten eines Programms hinzuzufügen. Wenn es sein Ende erreicht hat, hat es getan, was es zu tun hatte, und so hat es nichts mehr zu tun. Dies bringt das Betriebssystem dazu, den Prozess zu stoppen und zu löschen.

-1

u kann eine Eingabefunktion wie gets() oder getchar() oder scanf() ohne Eingangsgröße anstelle von system()

+4

****** NIE ****** benutzen 'gets'. JE. Es wird von allen Standards entfernt (C, POSIX, etc.) – dreamlax

+0

'gets' ist nicht mehr im aktuellen C-Standard (es war in [C99] (http://www.open-std.org/JTC1/sc22 /wg14/www/docs/n1256.pdf), ist es nicht in [C11] (http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1570.pdf)). – pmg

+0

oops! Ich wusste das und machte immer noch den Fehler! Es tut uns leid!! – Haywire

Verwandte Themen