# [c++] stop vor beenden



## DarkSummer (28. September 2002)

Hallo , mal ne frage hab gestern c++ angefangen und scho n bissel was durch php und pascal verstanden aber wie man bei dem code unten sieht ich weiss net warum bricht er das fenster sofortbei der ausgabe der ergebnisses.

Frage: Wie kann man das stopen?


```
#include <iostream.h>
void main()
{
   float radius;
   float hoehe;
   cout<<"Bitte geben Sie den Radius ein: ";
   cin>>radius;
   cout<<"Bitte geben Sie die Höhe ein: ";
   cin>>hoehe;
   const float PI=3.14f;
   float grundflaeche=PI*radius*radius;
   float volumen=(grundflaeche*hoehe)/3;
   cout<<"Das Volumen betraegt: "<<volumen<<endl;
   return 1;
};
```

Und um das noch etwas weiter auszunutzen hier 

Wie kann man in Datein schreiben bzw auslesen bzw veränderungen in datein vornehmen(txt)


----------



## goela (28. September 2002)

Bei einer Funktion mit void (bei Dir hier void main()) gibt es keinen Rückgabewert! Du beendest Dein Programm mit return 1.

Entweder Du änderst die Funktion in int main() oder Du löschst die letzte Zeile!


----------



## DarkSummer (28. September 2002)

oder ich includiere

```
#include <conio.h>
```
und mach am ende

```
getch();
```

und return 1; 
raus, Danke trotzdem


----------



## goela (28. September 2002)

Das ist auch richtig! Oder Du konfigurierst Deine Console (DOS-Fenster) so, dass nach Beendigung des Programms das Fenster noch geöffnet bleibt!


----------



## Dario Linsky (29. September 2002)

noch ein kleiner zusatz: du solltest dir nicht angewöhnen, die main-funktion als void zu deklarieren. die funktion wird vom betriebssystem aufgerufen und sollte immer einen wert zurückgeben. einige compiler lassen sich zwar auch "void main()" gefallen, aber das ist kein besonders guter stil.


----------



## Xeragon (6. Oktober 2002)

Es ist nicht nur schlechter Stil, es ist ein Fehler. (Der Compiler sollte einen Fehler melden - wenn nicht ist er fehlerhaft)

Genauso sind übrigens conio.h und getch() 
Erweiterungen, die zwar von manchen Umgebungen zur Verfügung gestellt werden, aber nicht portabel sind.


----------



## Dario Linsky (6. Oktober 2002)

> Es ist nicht nur schlechter Stil, es ist ein Fehler. (Der Compiler sollte einen Fehler melden - wenn nicht ist er fehlerhaft)


visual c++ nimmt main() merkwürdigerweise auch als void an, ohne zu meckern (nicht mal eine warnung). 

die conio.h und deren funktionen sind nicht nach dem ansi-standard, sondern erweiterungen (wie xeragon schon richtig erklärt hat). stattdessen sollte man vielleicht lieber scanf() oder cin nehmen, um das programmende zu verzögern. damit bleibt man jedenfalls auf der sicheren seite, weil man nur die standard-bibliotheken benutzt, die sowieso jede umgebung haben sollte.


----------



## Thomas Kuse (7. Oktober 2002)

auf linux gcc z.b. funzt kein getch()


----------

