cmd Fenster schliesst sich!



  • Hi, ich mache grade ein paar Übungen mit C++ und benutze als Programm dazu DevC++!
    habe folgendes Programm ausprobiert aus einer der Lernkurse auf dieser Seite hier:( es berechnet ob ein Jahr ein Schaltjahr ist)

    #include <iostream.h>

    bool istSchaltjahr(int jahr);

    int main()
    {
    int jahr;
    bool j;
    cout<<"Geben Sie eine Jahreszahl ein: ";
    cin>>jahr;

    j=istSchaltjahr(jahr);

    if(j==true)
    cout<<jahr<<" ist ein Schaltjahr"<<endl;
    else
    cout<<jahr<<" ist kein Schaltjahr"<<endl;

    return 0;
    }

    bool istSchaltjahr(int jahr)
    {
    bool j;
    if(jahr%100==0)
    if(jahr%400==0)
    j=true;
    else
    j=false;
    else
    if(jahr%4==0)
    j=true;
    else
    j=false;
    return j;
    };

    Nun ist es so, wenn ich mein Programm geschrieben habe und es dann compile und auf Execute gehe erscheint das Dos fenster( habe WINXP) und die Aufforderung ,dass ich das Schaltjahr eingeben soll.
    wenn ich dann das datum eingebe, und ENTER drücke, verschwindet das CMD fenster wieder ohne das ich das ergebnis sehen kann!

    Wie kann ich das beheben?

    THX schonmal
    cya VMS



  • Du kannst zuerst Die Konsole öffnen und dann erst dein Programm.

    Weitere Möglichkeiten aus der FAQ



  • Ich würde bloß die Version aus der FAQ nehmen, CME386, die Möglichkeit über eine zweite Konsole ist wieder konsolenabhängig - kann sein, dass deine Programme in einem Jahr nicht mehr laufen, etc.

    MfG SideWinder



  • danke für die schnelle Hilfe!

    Die Methode mit der Konsole vorher öffnen geht leida nicht, denn dann öffnet sich beim executen ein neues Fenster das sich dann auch wieder zu früh schliesst!

    Ich werde die gute alte getchar() Methode verwenden , die hab ich schonmal verwendet vor nem Jahr aber wusste gar nicht was sie bewirkt!

    THX nochmal,, cya VMS



  • SideWinder schrieb:

    Ich würde bloß die Version aus der FAQ nehmen, CME386, die Möglichkeit über eine zweite Konsole ist wieder konsolenabhängig - kann sein, dass deine Programme in einem Jahr nicht mehr laufen, etc.

    MfG SideWinder

    Ich persönlich halte mir während dem Programmieren immer ein Konsolenfenster offen. Wenn ich mein Programm dann neu kompiliert habe, wechsel ich in die Konsole, starte das Programm (was mit dem nach-oben-Cursor schnell geht) und habe nicht mehr das Problem, dass sich das Fenster schließt. Ich spare mir so den Code aus der FAQ.

    So war mein Vorschlag auch gemeint.



  • hi, stimmt , das ist auch ne gute Methode!
    Werde ich auch so machen wenn ich mit getchar () Probleme kriegen sollte!
    Ansonsten ist getchar () meiner Meinung nach die beste Methode , da der andere Code zu lang ist und getchar () ganz schnell zu schreiben geht 😉 !!!

    cya VMS



  • Nehmt einfach das aus der FAQ, bitte. Es ist vielleicht die Methode die zu Beginn am kompliziertesten aussieht, aber sie ist die einzige die wirklich das macht was ihr wollt: Warten auf einen beliebigen Tastendruck.

    getchar() liest aus einem Puffer, es kann leicht einmal sein, dass dort bereits etwas steht.

    MfG SideWinder


Log in to reply