Forum: PC-Programmierung Windows Eingabeaufforderung bricht nach dem ausführen des Programms ab


von Thomas (Gast)


Lesenswert?

Hallo, ich beziehe mich erstmal auf folgenden Quelltext:
1
/* bsp10006.c */
2
#include <stdio.h>
3
4
main() {
5
       float x,y;
6
       printf("\n\t2 . R e c h e n p r o g r a m m\n");
7
       printf("\nBitte x eingeben :");
8
       scanf("%f",&x);
9
       printf("Bitte y eingeben :");
10
       scanf("%f",&y);
11
       printf("\n %f + %f ist %f",x,y,x+y);
12
       printf("\n %f - %f ist %f",x,y,x-y);
13
       printf("\n %f * %f ist %f",x,y,x*y);
14
       printf("\n %f / %f ist %f",x,y,x/y);
15
       }

Und zwar Schilder ich mal das Problem!

Ich habe heute angefangen zu Programmieren (C) und arbeite mit dem 
Dev-C++ Compiler.
Wenn ich das obengenannte Programm schreibe (welches eine Übung aus 
einem Buch ist) schließt die Windows Eingabeaufforderung, die ja am 
anfang gestartet wird, direkt nach der eingabe von "y" und ich sehe halt 
keine Ergebnisse :(

Hat jemand eine idee woran das liegen könnte?
(Wie gesagt, ich habe heute das erstmal in meinem Leben ein Programm 
geschrieben, also bitte nicht böse sein wegen der vielleicht dummen 
Frage :)

von Peter (Gast)


Lesenswert?

warum sollte sie denn auch offen bleiben?

Wenn du sie selber voher von hand öffnest (start-> ausführen-> cmd 
[enter]) dann bleibt sie auch offen.
Du musst das das Programm auch auf der Kommandozeile starten und darst 
es nicht mit doppelklick starten!

von Gast (Gast)


Lesenswert?

Ich nehme an, dass du das Programm per Klick auf die Exe startest. Rufe 
mal die Eingabeaufforderung über das Startmenü auf, navigiere zu dem 
Ordner und tippe da den Namen des Programms ein. Nach Programmende 
sollte das Fenster der Eingabeaufforderung noch immer offen sein und du 
siehst das Ergebnis.

von Severino R. (severino)


Lesenswert?

Oder ganz am Schluss ein getchar() oder ähnlich einfügen.

von oszi40 (Gast)


Lesenswert?

Ein Zauberwort am Ende wäre z.B. PAUSE

von Peter (Gast)


Lesenswert?

für das "PAUSE" brauchst du aber erstmal eine cmd/bat datei. In der C 
Datei hilft das wenig.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

doch, mit
1
system ("pause");

von Thomas (Gast)


Lesenswert?

Wow!!

Dankeschön für die schnellen Antworten!
Es klappt tatsächlich... Und ja, vorher habe ich die .exe mit dem 
Maus-Doppelclick geöffnet :)

Also dann bedanke ich mich mal!

-Problem gelöst

gruß Thomas

von Peter (Gast)


Lesenswert?

@Niklas G. (erlkoenig)
> doch, mit
> system ("pause");
nö, weil es bei C kein "system" gibt sonder ein CreateProcess aber auch 
das geht nicht weil "pause" kein Befehl ist sondern ein Commando in der 
Eingebeaufforderrung, damit kann man es nicht von einem anderen Programm 
ausführen.

CreateProcess( ..., 'cmd.exe /C pause', ... ) könnte gehen.

von Karl H. (kbuchegg)


Lesenswert?

Peter wrote:
> @Niklas G. (erlkoenig)
>> doch, mit
>> system ("pause");
> nö, weil es bei C kein "system" gibt

doch das gibt es.

> sonder ein CreateProcess

das wiederrum mag es auf deinem System geben.
C, so wie es im Standard definiert ist, kennt es allerdings nicht.

von Peter (Gast)


Lesenswert?

stimmt, bei linux ist es da. In meiner Hilfe steht es nicht drin.

Aber pause gibt es immer noch nicht als befehl. (hoffentlich)

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

> Aber pause gibt es immer noch nicht als befehl. (hoffentlich)
Hm. Ich habe es zwar noch nicht selbst ausprobiert, aber schon zig mal 
in anderen Foren gelesen (z.B. 
http://www.funpic.de/forum/webhosting/ptopic,329338.html#329338 oder 
http://www.funpic.de/forum/webhosting/ptopic,163696.html#163696 ) und 
daher vermutet, dass es das gibt. Unter Linux mit wine geht es 
jedenfalls :)

von P. S. (Gast)


Lesenswert?

Peter wrote:

> Aber pause gibt es immer noch nicht als befehl. (hoffentlich)

Doch.

Wenn man keine Ahnung hat...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.