Verhindern, dass das Konsolenfenster in der Visual Studio C/C++-Konsolenanwendung geschlossen wird
Lesezeit: 5 Minuten
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
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
Chronoxor
Ab Visual Studio 2017 (15.9.4) gibt es eine Option:
Tools->Options->Debugging->Automatically close the console
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.
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.
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
paschaplus
Gehen Sie zum Debug-Menü ->Drücken SieStartOhneDebugging
+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
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
14279800cookie-checkVerhindern, dass das Konsolenfenster in der Visual Studio C/C++-Konsolenanwendung geschlossen wirdyes
Monodevelop tut, was Sie erwarten.
– Strg-Alt-Entf
12. Dezember 2016 um 18:21 Uhr