Verhindern, dass das Konsolenfenster in der Visual Studio C/C++-Konsolenanwendung geschlossen wird

Lesezeit: 5 Minuten

Benutzeravatar von Martin
Martin

Dies ist eine wahrscheinlich peinliche Frage, da die Antwort zweifellos offensichtlich ist.

Ich verwende Visual Studio seit Jahren, aber dies ist das erste Mal, dass ich eine „Konsolenanwendung“ entwickelt habe.

Wenn ich meine Anwendung ausführe, erscheint das Konsolenfenster, die Programmausgabe erscheint und dann schließt sich das Fenster, wenn die Anwendung beendet wird.

Gibt es eine Möglichkeit, es entweder geöffnet zu lassen, bis ich die Ausgabe überprüft habe, oder die Ergebnisse anzuzeigen, nachdem das Fenster geschlossen wurde?

  • Monodevelop tut, was Sie erwarten.

    – Strg-Alt-Entf

    12. Dezember 2016 um 18:21 Uhr

Wenn Sie ohne Debugging (Strg+F5) ausführen, werden Sie standardmäßig aufgefordert, die Eingabetaste zu drücken, um das Fenster zu schließen. Wenn Sie den Debugger verwenden möchten, sollten Sie einen Haltepunkt auf die letzte Zeile setzen.

  • Wenn Sie eine C++-App haben und ohne Debugging ausführen und das Konsolenfenster immer noch geschlossen wird, müssen Sie daran denken, das Subsystem unter Konfigurationseigenschaften / Linker / System explizit auf Konsole festzulegen. Dies kann passieren, wenn Sie mit einem leeren Projekt beginnen, das das Subsystem nicht konfiguriert lässt.

    – Trevor Robinson

    25. August 2010 um 18:39 Uhr

  • Hat bei mir nicht funktioniert 🙁 Das Konsolenfenster öffnet und schließt sich sofort, aber das Protokoll hält an und wartet auf ein weiteres Drücken von F5

    – CodyBugstein

    8. Dezember 2013 um 12:17 Uhr


  • Die richtige Antwort ist die von @TrevorRobinson: Hier ist die erweiterte Version, wenn Sie Probleme haben, herauszufinden, wo sich die Konfigurationseigenschaften befinden: Klicken Sie mit der rechten Maustaste auf Ihr Projekt in Visual Studio > Eigenschaften > Konfigurationseigenschaften > Linker > System, ändern Sie das Subsystem in ” Konsole”

    – Debajit

    9. Januar 2014 um 0:39 Uhr

  • Trevor Robinson hat Recht. Wenn Sie ein leeres Projekt starten, und C++ item. Sie müssen zu View->Property Manager->Property (Schraubenschlüsselsymbol)->Config gehen. Eigenschaften->Linker->System->Subsystem->Wählen Sie im Pop-Down-Menü Konsole.

    – Hochverehrter Herr

    20. September 2017 um 15:30 Uhr

  • Ich arbeite an VS Community 2017. ctrl+f5 funktioniert nicht, es gibt keine Properties Wenn ich mit der rechten Maustaste auf das Projekt klicke, wird auch das wrench icon ist ausgegraut.

    – kscha

    16. Dezember 2017 um 6:54 Uhr

Benutzeravatar von Viraj
Viraj

Klicken Sie mit der rechten Maustaste auf Ihr Projekt

Eigenschaften > Konfigurationseigenschaften > Linker > System

Auswählen Konsole (/SUBSYSTEM:KONSOLE) in SubSystem Option oder Sie können einfach eingeben Konsole im Textfeld!

Probieren Sie es jetzt aus … es sollte funktionieren

  • Dies funktionierte für meinen VS2013 Express, die akzeptierte Antwort jedoch nicht. Sehr seltsam, da die akzeptierte Antwort für alle Visual Studio-Versionen funktioniert hat, die ich in der Vergangenheit verwendet habe.

    – Michael Calvin

    28. Januar 2015 um 20:39 Uhr

  • @MichaelCalvin Sie müssen mit Strg + F5 laufen, nachdem Sie dies eingestellt haben, das ist der Kicker.

    – Jonathan Mei

    19. Oktober 2016 um 11:35 Uhr

  • Wie @JonathanMee sagte, haben Sie immer noch Strg + F5 ausgeführt. Dies wurde bereits 2015 in meinem Visual Studio festgelegt, daher war die erste Antwort diejenige, die am meisten geholfen hat.

    Benutzer7468879

    28. Januar 2017 um 20:27 Uhr

  • Das ist in der Tat richtig. Das vertraute CTRL+F5 schlägt fehl, wenn Sie beispielsweise einem leeren Projekt eine neue C++-Datei hinzufügen.

    – Benutzer2023370

    14. Januar 2019 um 11:55 Uhr

  • Arbeitete für mich auf Visual Studio Express 2015. Danke.

    – Steven Lee

    31. Mai 2020 um 9:44 Uhr

Benutzeravatar von chronoxor
Chronoxor

Ab Visual Studio 2017 (15.9.4) gibt es eine Option:

Tools->Options->Debugging->Automatically close the console

Das entsprechende Fragment aus der Visual Studio-Dokumentation:

Die Konsole automatisch schließen, wenn das Debuggen stoppt:

Weist Visual Studio an, die Konsole am Ende einer Debugsitzung zu schließen.

  • Ich habe dies gerade in VS2017 und VS2019 getestet. Es erfordert sowohl das Einstellen des Subsystems auf CONSOLE als auch das Deaktivieren dieser Option. Wenn Sie das eine oder das andere oder keines haben, wird das Fenster automatisch geschlossen.

    – Casey

    27. Juli 2019 um 16:39 Uhr

  • Dadurch wird das Fenster für mich immer noch geschlossen, wenn ich mehrere Projekte aus derselben Lösung starte.

    – Serge Rogatch

    25. August 2019 um 11:40 Uhr

  • Ich habe das Gefühl, dass dies die richtige Antwort für VS 2017 und höher ist. Schade, dass es nicht in älteren Versionen ist.

    – Der letzte Schrei

    5. Dezember 2019 um 2:51 Uhr

  • Wie ändere ich das Subsystem für ein Makefile-Projekt?

    – André van Schoubroeck

    3. Dezember 2020 um 15:04 Uhr

  • Ich habe festgestellt, dass beim Debuggen einer C++-Konsolenanwendung, bei der Befehlsargumente eine Datei an die Standardeingabe (stdin) umleiten, das Fenster unabhängig von der Einstellung dieser Option automatisch geschlossen wird.

    – RainMoose

    8. April um 17:57 Uhr

Benutzeravatar von Shaun
Shaun

Hier ist ein Weg für C/C++:

#include <stdlib.h>

#ifdef _WIN32
    #define WINPAUSE system("pause")
#endif

Setzen Sie dies an den Anfang Ihres Programms, und WENN es sich auf einem Windows-System befindet (#ifdef _WIN32), dann wird ein Makro namens erstellt WINPAUSE. Wann immer Sie möchten, dass Ihr Programm pausiert, rufen Sie an WINPAUSE; und es wird das Programm mit dem DOS-Befehl anhalten. Bei anderen Systemen wie Unix/Linux sollte die Konsole ohnehin nicht beim Beenden des Programms beendet werden.

Benutzeravatar von Cheeso
Käse

Wenn Sie .NET verwenden, verwenden Sie put Console.ReadLine() vor Programmende.

Es wird warten <ENTER>.

  • +1 – Entweder das oder Console.ReadKey() einfach auf irgendeinen Schlüssel warten.

    – Fredrik Mörk

    21. November 2009 um 16:02 Uhr

  • Seltsamerweise hat dies keine Auswirkungen auf meine App. Es wird immer noch geschlossen, ohne auf Benutzereingaben zu warten.

    – Kokodoko

    29. März 2015 um 11:04 Uhr

  • Dann wird Ihr Code höchstwahrscheinlich beendet, bevor er diesen Punkt erreicht.

    – In der Tat

    9. Januar 2017 um 22:02 Uhr

  • Keine gute Lösung, wenn Sie Tests ausführen, da diese dazu führen, dass Ihre Tests hängen bleiben und nie beendet werden.

    – kpaul

    3. Juli 2020 um 2:43 Uhr

Benutzeravatar von pashaplus
paschaplus

Gehen Sie zum Debug-Menü ->Drücken Sie StartOhneDebugging

  • +1 – Entweder das oder Console.ReadKey() einfach auf irgendeinen Schlüssel warten.

    – Fredrik Mörk

    21. November 2009 um 16:02 Uhr

  • Seltsamerweise hat dies keine Auswirkungen auf meine App. Es wird immer noch geschlossen, ohne auf Benutzereingaben zu warten.

    – Kokodoko

    29. März 2015 um 11:04 Uhr

  • Dann wird Ihr Code höchstwahrscheinlich beendet, bevor er diesen Punkt erreicht.

    – In der Tat

    9. Januar 2017 um 22:02 Uhr

  • Keine gute Lösung, wenn Sie Tests ausführen, da diese dazu führen, dass Ihre Tests hängen bleiben und nie beendet werden.

    – kpaul

    3. Juli 2020 um 2:43 Uhr

Benutzeravatar von Alex Shesterov
Alex Schesterow

versuchen anzurufen getchar() kurz bevor main() kehrt zurück.

  • Funktioniert nicht in VS 2008 für eine einfache Hello Name-Konsolen-App. cout, cin, cout, getchar(), die Konsole wird immer noch geschlossen. Was ist das Problem?

    – Birne

    7. Januar 2015 um 1:11 Uhr

  • Versuchen Sie, getchar() zweimal zu setzen, wenn Sie kurz vor getchar() einen Cout haben. getchar() erwartet ein char und du gibst es bereits mit cout … Lass es mich wissen, wenn das hilft 🙂

    – Magarusu

    8. Januar 2015 um 8:42 Uhr

1427980cookie-checkVerhindern, dass das Konsolenfenster in der Visual Studio C/C++-Konsolenanwendung geschlossen wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy