Nekromantischer Split aus C++: Konsolenanwendung(?) schließt sofort



  • Hallo

    Ich bin auch recht neu in der Welt von C++ unterwegs und noch ganz am Anfang.
    Ich spiele gerade mit Konsolenanwendungen herum.
    Dazu möchte ich mein Werk gern unter windows gern testen. Das Ziel ist es das die anwendung nich von sich beendet wird, sondern ich das gesmte Ergebniss sehen kann.

    Der Code ist:

    #include <iostream>

    using namespace std;

    int main()
    {
    string name;
    int alter;
    cout << "Geben Sie Ihren Namen ein: ";
    cin >> name;
    cout << "Ihr Name ist " << name << endl;
    cout << "Und wie alt bist du: ";
    cin >> alter;
    cout << "Dein alter ist " << alter << endl;
    cout << "Du heisst also " << name << ". " << "Und du bist " << alter << endl;
    return 0;
    }

    Ich tät halt gern das Fenster mit den Eingaben sehen wollen. Kann mir wer helfen und den code so erweitern das er das gewünschte erreicht.

    Ich danke euch.


  • Global Moderator

    Hallo Selak,

    wenn man schon so unhöflich ist, einen uralten Thread grundlos hervorzuholen, dann sollte man ihn auch selber lesen. Deine Frage wurde dort doch eindeutig gleich mit der ersten Antwort gelöst:

    Swordfish schrieb:

    Automatisches Schließen verhindern

    btw: Du willst ins C++(ohne CLI)-Forum.

    Für dich gilt auch das gleiche wie für den damaligen Threadersteller: C++ ist was anderes als C++/CLI.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++/CLI mit .NET in das Forum C++ (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich bitte um Entschuldigung. Ich ging davon aus das meine Frage da richtig aufgehoben war.
    Ich danke auch, das es so schnell eine Reaktion gab.
    Naturlich habe ich es versucht mit dem ersten Hinweis, das Problem zu lösen. Doch anscheinend bin ich noch zu unwissend, das alleine zu lösen, da ich irgendwie ein Fehler mache. Denn obwohl keiner angezeigt wird, habe ich trotz der Erweiterung es nicht geschafft, dass die KONSOLE offen bleibt. Deswegen bat ich das mir wer es erweitert zeigt.
    Wie gesagt ich bin neu in der Materie und möchte mehr darüber lernen.



  • Wie geschrieben, steht die Lösung schon da, aber als Anfänger würde ich schlicht

    std::cin.sync();
    std::cin.get();
    

    nehmen. Dann braucht es für so Kleinkram auch keine weiteren includes. Wichtig ist nur, das Du verstehst, das damit auf Tastendruck bzw die Enter-Taste gewartet wird. zB nach return 0 ; schreiben bringt wenig, weil dann die main schon abgearbeitet ist.

    Aber eigentlich benötigst Du es gar nicht, weil die IDEs schon solche Funktionen mitbringen. Bei Code::Blocks auf jeden Fall. Dort wird immer gewartet, bevor die Konsole sich dann schließt. Bei Visual Studio muss man glaube ich eine entsprechende Taste statt der übliche drücken, damit die Konsole offen bleibt. Da bin ich mir aber nicht sicher.

    Später wirst Du Dich darum gar nicht mehr kümmern, weil Deine Aus- und Eingaben in einer Schleife sein werden und wenn die über einen entsprechenden Punkt verlassen werden soll, dann auch das Programm beendet sein soll und nicht noch auf Tastendruck gewartet wird.

    Und weil es blöd ist, sich bei kleinen Sachen trotzdem drum zu kümmern, ist man froh, wenn die IDE solche eine Funktion schon mitbringt 😉



  • Starte das Programm in Visual Studio mit Strg+F5 bzw. im Menü Debuggen->Starten ohne debuggen.



  • Ich danke dir vielmals für deine Hilfe. Mein Fehler war das ich nicht beide Zeilen genutzt habe.
    Doch nun geht es so wie ich es mir vorgestellt habe.
    Und entschuldigt, das ich so eine triviale Frage gestellt habe und auch noch im falschen tread.



  • Übrigens nutze ich zum Üben Codeblocks mit dem GNU GCC Compiler. Denn diese wird auch in dem Buch C++ für Dummies empfohlen wurde.
    Es ist echt schön, das die Community hier so gut funktioniert, das die Probleme so schnell eine Lösung finden.



  • Das einzig Sinnvolle für Dein Problem ist:

    Öffne ein Konsolenfenster
    Navigiere in den Ordner, in dem sich Deine exe-Datei befindet
    Führe Deine exe-Datei aus

    Dann benötigst Du keinerlei Änderungen/Vorbereitungen an Deinem Programm/Programmcode.

    Lass das Konsolenfenster so lange geöffnet, wie Du an dem Programm herumbastelst/korrigierst/testest, bzw. immer wieder neu kompilierst.

    Das ist einfach die natürliche Art und Weise, wie man Konsolenprogramme ausführt.



  • manni66 schrieb:

    Starte das Programm in Visual Studio mit Strg+F5 bzw. im Menü Debuggen->Starten ohne debuggen.

    Beste Antwort von allen und funktioniert (wenn auch etwas anders) ebenfalls in Eclipse, Netbeans, Qt-Creator, etc. 👍
    Will gar nicht wissen wie viele Threads uns schon erspart geblieben wären, wäre der große grüne "Play-Knopf" nicht so verlockend oder würde für "Ausführen" und nicht für "Debuggen" stehen 😉