www.mikrocontroller.net

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


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich beziehe mich erstmal auf folgenden Quelltext:
/* bsp10006.c */
#include <stdio.h>

main() {
       float x,y;
       printf("\n\t2 . R e c h e n p r o g r a m m\n");
       printf("\nBitte x eingeben :");
       scanf("%f",&x);
       printf("Bitte y eingeben :");
       scanf("%f",&y);
       printf("\n %f + %f ist %f",x,y,x+y);
       printf("\n %f - %f ist %f",x,y,x-y);
       printf("\n %f * %f ist %f",x,y,x*y);
       printf("\n %f / %f ist %f",x,y,x/y);
       }

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 :)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder ganz am Schluss ein getchar() oder ähnlich einfügen.

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Zauberwort am Ende wäre z.B. PAUSE

Autor: Peter (Gast)
Datum:

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

Autor: Niklas Gürtler (erlkoenig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch, mit
system ("pause");

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

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

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

Autor: Niklas Gürtler (erlkoenig)
Datum:

Bewertung
0 lesenswert
nicht 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,32933... oder 
http://www.funpic.de/forum/webhosting/ptopic,16369... ) und 
daher vermutet, dass es das gibt. Unter Linux mit wine geht es 
jedenfalls :)

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter wrote:

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

Doch.

Wenn man keine Ahnung hat...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.