Programm Enden lassen oder Programm neu starten lassen?



  • halle habe heut ein programm geschrieben mit dem die Masse eines Zylinders ausgerechent werden soll. Sieht gekürzt so aus ...

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    float x,h,r,ro,m;
    const float pi=3.141592;
    
    main()
    {
    cout << "Programm zur Berechnung der Masse eines Zylinders. Bitte geben sie die Hoehe und den Radius in cm an!\n";
    cout << "Hoehe (cm): "; 
    cin >> h;
    cout << "Radius (cm): ";
    cin >> r;
    cout << "\nFuer welches ...
    
    cout << "\nDie Masse fuer den Zylinder betraegt: " << m;
    if (m==0)
    cout << "\nBerechnung abgebrochen, da falsche Eingabe!";
    
    }
    

    und jetzt ne anscheinend sehr blöde frage, ... wie kann ich das programm so enden lassen, das er mir das ergebnis anzeigt !? .... wenn ich alle meine Werte eingeben habe beendet das Programm einfach, ... wenn ich nochmal sinnlos ein cin >> r eingebe, zeigt er mir das Ergebnis, ... ist ja aber keine richtige Lösung. Kann ich auch sowas machen, das ich fragem ob das Programm neu gestartet werden soll!? Wenn ja, ... wie ?

    Danke und Mfg
    Ben





  • irgendwie funtzt das auch ne 😕 macht trotzdem zu



  • Das mit dem neustart machst du dann wohl am besten mit einer do-while schleife.

    Du packst den ganzen Code vom Beginn bis zum ende in so einen block

    do{
    
    //programmcode
    
    //Abfrage ob neu gestartet werden soll. in eine Variable 1 oder 2 speichern zum //Beispiel, und bei while dann als Argument Variable==1
    }while(hier dein Argument);
    

    wäre für dich ein hoffentlich halbwegs verständlicher ansatz



  • und wie könnte ich einfach das Programm auf tastendruck enden lassen?

    oder meinetwegen reicht auch, das er mir nur das Ergebnis zeigt, ...

    eigentlich müsste es doch mit

    cout << "Ergebnis: " << m << endl;
    

    gehen, oder !? Wenn ja, ... geht aber ne ^^



  • Hallo,
    wenn du willst, dass dein Programm erst nach einem Tastendruck beedet wird, dannmach folgendes.

    #include <conio>

    Und in der letzten Zeile deines Programmes einfach:

    getch();

    einfügen.

    MfG
    Dima



  • Hallo

    Dima schrieb:

    Hallo,
    wenn du willst, dass dein Programm erst nach einem Tastendruck beedet wird, dannmach folgendes.

    #include <conio>

    Und in der letzten Zeile deines Programmes einfach:

    getch();

    einfügen.

    Nein denn diesen Header und diese Funktion sind nicht im C++ Standard. Braunstein hat bereits den Link gepostet wo die korrekte C++ Lösung beschrieben wird.

    bis bald
    akari



  • Das liegt daran das Windows dir nur ein Kommandozeilenfenster dafür öffnet und dieses sofort schließt, wenn das Programm beendet ist. Ist also eine "Macke" von Windows. Daher sind alle Manipulationen am Programm selbst eigentlich sinnfrei.

    Sinniger ist es eine Kommandozeile zu öffnen (Start->Ausführen->"cmd") und dort zum Programm zu navigieren und es in dort auszuführen. Dann "verschwindet" auch nichts.

    Irgendwo gab es bei Windows auch noch die Einstellung das ein Fenster offen bleibt nachdem es ausgeführt wurde, ich glaube bei den Einstellungen der Verknüpfungen, weiß es aber gerade nicht genau.



  • Hab dir mal die Struktur zusammengebaut, die Variablen sollten auch innerhalb der int main deklariert werden, hab ich direkt gemacht. Was du noch tun musst, steht in den Kommentaren.

    #include <iostream>
    #include <conio>
    
    using namespace std;
    
    int main()
    {
    
    char wiederholen;
    float x,h,r,ro,m;
    const float pi=3.141592;
    
    do{
    
    //Alle Maße einlesen
    //Die Masseformel anwenden, also m= formel unter Verwendung deiner Variablen
    //Ausgabe von m
    //Abfrage ob wiederholen: Geben sie 1 für Wiederholen 2 zum Beenden ein oder so
    
    }while(wiederholen=='1');
    
    getch();
    return 0;
    
    }
    

    (Achtung - Code nicht getestet!)

    Ich hoffe du schaffst das, bei Fragen schreib einfach



  • Dima schrieb:

    Hallo,
    wenn du willst, dass dein Programm erst nach einem Tastendruck beedet wird, dannmach folgendes.

    #include <conio>

    Und in der letzten Zeile deines Programmes einfach:

    getch();

    einfügen.

    MfG
    Dima

    darf leider nur stadart c++ Anweisungen beinhalten ...

    @ XaTrIxX ... danke werd ich mal probieren, ... liegt aber wirklich an der Konsole...wenn ich´s in der CMD Konsole ausführe funktioniert es wunderbar 🙂

    Danke!!



  • Dann mach es halt so wie in dem Link, den ich dir gepostet habe. Wenn das nicht gehen sollte, zeig mal deinen Code.


Anmelden zum Antworten