[c++] stop vor beenden

DarkSummer

Erfahrenes Mitglied
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?

Code:
#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) :)
 
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!
 
Das ist auch richtig! Oder Du konfigurierst Deine Console (DOS-Fenster) so, dass nach Beendigung des Programms das Fenster noch geöffnet bleibt!
 
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.
 
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.
 
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). :rolleyes:

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.
 

Neue Beiträge

Zurück