# DOS-Fenster schließt sich sofort



## honeyboy (15. Februar 2004)

hi leutz,

ich will jetzt in die C++-Programmierung einsteigen und hab mir jetzt mal ein Buch besorgt ("C++ in 21 Tagen").
Funktioniert auch alles wunderbar, nur habe ich das Problem, dass sich beim Starten meiner kompilierten Dateien ein DOS-Fenster öffnet (das is ja auch noch gut so  ), das sich aber sofort wieder schließt. Ich habe also ein einfaches "Hello World"-Program, das ich kompiliere und ausführe. Es öffnet sich ein DOS-Fenster, "Hello World" erscheint auch, aber ich kanns nicht lesen, da das Fensterchen nichtmal ne halbe Sekunde offen bleibt.
Wenn ich jetzt zum Beispiel ein Program habe, bei dem ich eine Eingabe verlange, wird der Code bis dorthin ausgeführt, ich gebe zwei Zahlen ein, und das Program läuft weiter, schließt sich aber nach der letzten Codezeile sofort und ohne zögern  

Ich arbeite unter Win 98 (SE) und mit "Dev-C++" (wobei ich kaum glaube, dass es am Compiler liegt...). Wäre nett, wenn mir jemand helfen könnte, dieses Problem zu lösen.

mfg
honeyboy

(P.S.: Ist nicht nur bei meinen eigenen Programmen so, sondern auch wenn ich beispielsweise über "Ausführen" DOS-Programme starten will...)


----------



## won_gak (15. Februar 2004)

Nee, das liegt an Windows. Wenn sich ein DOS-Fenster öffnet, dann bleibt dieses nur so lange offen bis ein exit stattfindet (sprich bis das aufgerufene Programm beendet ist). Also starte am besten dein Script per Kommandozeile, nachdem du das Fenster mit "Ausführen"->"command" geöffnet hast.
Irgendwo kannst du auch einstellen, dass sich das Fenster nicht schließt, auch wenn das Programm beendet wurde.

[EDIT]
Der Vers am Ende kommt mir irgendwie bekannt vor. Woher ist das?
[/EDIT]


----------



## honeyboy (15. Februar 2004)

Meine Sig?

Kommt aus ner Geschichte, die ich mal von meinem Freund geschickt bekommen habe, weiß nicht, ob das noch woanders vorkommt 

Naja, danke jedenfalls für deinen Tip, ich werds ausprobieren....


----------



## BlackLordOfDragons (15. Februar 2004)

Ansonsten:

```
cout.flush(); 
getchar();
```

um den Code zu flushen und auf einen char zu warten, man braucht für getchar aber AFAIK die stdio.h


----------



## fhr (25. Februar 2004)

Setzt  am besten ein    system("pause");     an das Ende....
dann müsste das DOS Fenster offen bleiben....


----------



## Angeltv (7. März 2004)

Oder einen 

return();


----------



## Kachelator (7. März 2004)

> Oder einen
> 
> return();


 Was bedeutet das denn?


----------



## fhr (7. März 2004)

wenn du grad mit C++ anfängst, hau erst mal keinen return(); da hin,
weil die meißten Anfängerbeispiele fangen in solchen büchern bestimmt so an:

#include ......

void main()
{
[

und dann bekommst gleich Compilerfehler und weißt (noch) nicht warum....

mit return bestimst du nur den Wert den z.B: eine Funktion zurück lierfern soll ...


----------



## BlackLordOfDragons (7. März 2004)

Sicher das Return ein Konsollenfenster (nicht DOS) offen hält?
Ich habe das getestet, es ging aber nicht.

Return gibt ja nur ein Rückgabewert zurück, ob das Programm sauber ausgeführt wurde.


----------



## fhr (8. März 2004)

deswegen sag ich ja nimm system("pause");
vielleicht ohne Anführungszeichen....

aber das funktioniert ...


----------



## Gray (9. März 2004)

bin mir nicht 100%ig sicher aber das müsste gehen:

char p[50];
cin.getline[p,50];
cin.getline[p,50];

So oder ähnlich, steht es im Studienheft der ILS, ich schau daheim nochmal nach, und korrigier es ggf.

Edit: Nu isses Richtig, so geht es.


----------

