Это, вероятно, смущающий вопрос, так как, несомненно, ответ очевиден.
Я использовал Visual Studio много лет, но впервые я разрабатывал «Консольное приложение».
Когда я запускаю свое приложение, всплывает окно консоли, появляется вывод программы, а затем окно закрывается при выходе из приложения.
Есть ли способ оставить его открытым, пока я не проверил вывод, или просмотреть результаты после закрытия окна?
Monodevelop делает то, что вы ожидаете.
Ниже приведено слишком много ответов, поэтому я скопирую ответ здесь: если вы используете VS2017, то выберите Инструменты-> Параметры-> Отладка-> Автоматически закрыть консоль
Согласовано. Я думаю, что лучший ответ для VS 2017 и новее — это chronoxor.
Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает нажать клавишу возврата, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова на последней строке.
Если у вас есть приложение на C ++ и «Выполнить без отладки», а окно консоли по-прежнему закрывается, вам нужно не забыть явно установить для Подсистемы значение «Консоль» в разделе «Свойства конфигурации / Linker / System». Это может произойти, если вы начинаете с пустого проекта, который оставляет подсистему неустановленной.
Командная строка закрывается после выполнения команды (Решение)
У меня не сработало 🙁 Окно консоли открывается и сразу закрывается, но журнал останавливается и ждет дополнительного нажатия F5
Тревор Робинсон прав. Если вы запускаете пустой проект и C ++ элемент. Вам нужно перейти в View-> Property Manager-> Property (значок гаечного ключа) -> Config. Свойства-> Линкер-> Система-> Подсистема-> во всплывающем меню выберите Консоль.
Я работаю над сообществом VS 2017. ctrl+f5 не работает, нет, Properties когда я щелкаю правой кнопкой мыши проект, также wrench icon серый цвет.
Щелкните правой кнопкой мыши по вашему проекту
Свойства> Свойства конфигурации> Линкер> Система
Выберите Console (/ SUBSYSTEM: CONSOLE) в SubSystem опции или вы можете просто ввести Console в текстовое поле!
Теперь попробуйте . это должно работать
Это сработало для моего VS2013 Express, но принятого ответа нет. Очень странно, поскольку принятый ответ работал для всех версий Visual Studio, которые я использовал в прошлом.
Это действительно правильно. Знакомый CTRL+F5 потерпит неудачу, если вы, скажем, добавите новый файл C ++ в пустой проект.
Работал для меня на Visual Studio Express 2015. Спасибо.
Вот способ для C / C ++:
#include #ifdef _WIN32 #define WINPAUSE system(«pause») #endif
Поместите это в верхнюю часть вашей программы, и ЕСЛИ она находится в системе Windows ( #ifdef _WIN32 ), то она создаст макрос с именем WINPAUSE . Всякий раз, когда вы хотите, чтобы ваша программа приостановила работу, позвоните, WINPAUSE; и она приостановит программу, используя команду DOS. Для других систем, таких как Unix / Linux, консоль не должна закрываться при выходе из программы.
C++ закрывается консоль. Что делать? Задержка экрана консоли. Урок #21.
Этот метод не работает в Visual C ++ (если вы не
Я не включил ни одну библиотеку или пространство имен, но он работает правильно, большое спасибо.
Не делай этого, пожалуйста. Команда pause зависит от Windows.
Работал для меня на Visual Studio 2013 Express. 🙂
Перейти к меню отладки-> Нажмите Пуск без отладки
Это даже не вариант в VS 2008, если не была выбрана среда разработки C #. CTRL + F5 работает, хотя. Вы также можете добавить это как кнопку на панель инструментов через Инструменты> Настроить.
Если у вас есть несколько проектов, установите соответствующий в качестве стартового проекта
Если вы используете .NET, поставьте Console.ReadLine() перед концом программы.
Это будет ждать .
+1 — Либо это, либо Console.ReadKey() просто ждать любую клавишу.
Странно, это не влияет на мое приложение. Он по-прежнему закрывается без ожидания ввода пользователя.
Тогда ваш код, скорее всего, завершается до того, как достигнет этой точки.
Начиная с Visual Studio 2017 (15.9.4) существует опция:
Tools->Options->Debugging->Automatically close the console
Автоматически закрывать консоль при остановке отладки:
Сообщает Visual Studio закрыть консоль в конце сеанса отладки.
Я только что проверил это в VS2017 и VS2019. Это требует как установки подсистемы на CONSOLE, так и отключения этой опции. Наличие одного или другого или ни того, ни другого не закрывает окно автоматически.
Это все еще закрывает окно для меня, если я запускаю несколько проектов из одного решения.
Я чувствую, что это правильный ответ для VS 2017 и вперед. Жаль, что это не в старых версиях.
Попробуйте позвонить getchar() прямо до main() возвращения.
Не работает в VS 2008 для простого консольного приложения Hello Name. cout, cin, cout, getchar (), консоль все еще закрывается. В чем дело?
Попробуйте поставить getchar () дважды, если у вас есть cout перед getchar (). getchar () ожидает char, а вы уже передаете его cout . Дайте мне знать, если это поможет 🙂
(/ SUBSYSTEM: CONSOLE) не работал для моего vs2013 (он у меня уже был).
«запустить без отладки» не вариант, так как я не хочу переключаться между отладкой и просмотром вывода.
int main() . #if _DEBUG LOG_INFO(«end, press key to close»); getchar(); #endif // _DEBUG return 0; >
Решение, используемое в qtcreator pre 2.6. Теперь, когда Qt растет, Vs идет другим путем. Насколько я помню, в vs2008 нам не нужны были такие хитрости.
Вот решение, которое (1) не требует никаких изменений кода или точек останова, и (2) делает паузу после завершения программы, чтобы вы могли видеть все, что было напечатано. Он будет приостановлен после F5 или Ctrl + F5. Основным недостатком является то, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.
%1 %2 %3 %4 %5 %6 %7 %8 %9 pause
Теперь, когда вы запустите, runthenpause.bat запустите ваше приложение, и после того, как ваше приложение будет завершено, вы остановитесь, чтобы увидеть вывод консоли.
Я опубликую обновление, если выясню, как загрузить символы. Я пытался /Z7 по этому, но безуспешно.
Это по-прежнему не поддерживает отладку, но, по крайней мере, решает проблему невозможности увидеть выходные данные, например, VLD, в отличие от всех других ответов.
просто введите в качестве последней строки кода:
system(«pause»);
Вы можете запустить свой исполняемый файл из командной строки. Таким образом, вы можете увидеть все результаты. Или вы можете сделать что-то вроде этого:
int a = 0; scanf(«%d», return YOUR_MAIN_CODE;
и таким образом окно не закроется, пока вы не введете данные для a переменной.
добавить «| Пауза »в поле аргументов команды в разделе отладки в свойствах проекта.
Это было бы отличным решением, если бы это работало. pause похоже, работает только в пакетных файлах, и хотя он получает данные от вашей программы на STDIN, он не перепечатывает этот текст. Я попытался заменить | на , но это не имело никакого эффекта — вероятно, потому что это не выполняется с командной оболочкой (cmd.exe).
Просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не имеет над ним контроля).
Если это не работает, добавьте следующее в конец кода:
Console.WriteLine(«Press any key to exit. «); Console.ReadKey();
Это ждет, пока вы нажмете клавишу, чтобы закрыть окно терминала, как только код достигнет конца.
Если вы хотите сделать это в нескольких местах, поместите приведенный выше код в метод (например private void Pause() ) и вызывайте Pause() каждый раз, когда программа достигает возможного конца.
Источник: qastack.ru
Предотвращение закрытия окна консоли в консольном приложении Visual Studio C / C ++
Это, вероятно, вопрос о запуске, поскольку, несомненно, ответ ослепительно очевиден. Я использовал Visual Studio в течение многих лет, но это первый раз, когда я создал любую консольную программу. Когда я запускаю приложение, появляется окно консоли, появляется выход программы, а затем окно закрывается по мере выхода приложения. Есть ли способ открыть его, пока я не проверил вывод или не просмотрел результаты после закрытия окна?
Martin 21 нояб. 2009, в 15:25
Поделиться
Monodevelop делает то, что вы ожидаете.
ctrl-alt-delor 12 дек. 2016, в 18:21
Поделиться:
visual-studio
19 ответов
Лучший ответ
Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает вам нажать return, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова в последней строке.
Tom 21 нояб. 2009, в 17:13
Поделиться
Если у вас есть приложение на C ++ и «Выполнить без отладки», а окно консоли по-прежнему закрывается, вам нужно не забыть явно установить для Подсистемы значение «Консоль» в разделе «Свойства конфигурации / Linker / System». Это может произойти, если вы начинаете с пустого проекта, который оставляет подсистему неустановленной.
Trevor Robinson 25 авг. 2010, в 18:39
Вы также можете добавить кнопку «Пуск без отладки» на любую панель инструментов или меню, если хотите, если вы находитесь в диалоговом окне Tools->Customize.
mwfearnley 22 окт. 2013, в 17:02
У меня не сработало 🙁 Окно консоли открывается и сразу закрывается, но журнал останавливается и ждет дополнительного нажатия F5
CodyBugstein 08 дек. 2013, в 12:17
Tom 08 дек. 2013, в 14:52
PlagueHammer 09 янв.
2014, в 00:39
Это странно, если я запускаю без отладки, ничего не происходит вообще. Приложение даже не запускается. Работает нормально с отладкой.
Kokodoko 29 март 2015, в 11:03
Console.ReadKey (истина); остановит ваше приложение и будет ждать нажатия клавиши.
Dave 21 апр. 2015, в 18:37
Это работает в VS 2015
zee 19 окт. 2015, в 22:54
Это не работает для проектов Makefile. CTRL + F5 не ждет ввода.
user2023370 03 янв. 2016, в 21:22
Хм . это перестало работать в Visual Studio 2015 (по крайней мере, по умолчанию)?
Pedro Reis 10 окт. 2016, в 15:35
Если вы установили Subsystem: Console и Ctrl + F5 STILL приводит к тому, что окно консоли мгновенно закрывается, вам может потребоваться дважды проверить, выбрана ли конфигурация отладки при внесении изменений. Если у вас выбрана другая конфигурация, например, Release, при установке Subsystem: Console у вас, вероятно, будут проблемы с исчезающей консолью после нажатия Ctrl + F5.
Ry Lowry 12 март 2017, в 23:43
Тревор Робинсон прав. Если вы запускаете пустой проект и C ++ элемент. Вам нужно перейти в View-> Property Manager-> Property (значок гаечного ключа) -> Config. Свойства-> Linker-> System-> Subsystem-> во всплывающем меню выберите Console.
most venerable sir 20 сен. 2017, в 15:30
Я работаю над сообществом VS 2017. ctrl+f5 не работает, когда я щелкаю правой кнопкой мыши по проекту, Properties нет, также wrench icon отображается серым цветом.
Ketan 16 дек. 2017, в 06:54
Показать ещё 11 комментариев
Щелкните правой кнопкой мыши на вашем проекте
Свойства> Свойства конфигурации> Линкер> Система
Выберите Console (/SUBSYSTEM: CONSOLE) в опции SubSystem или вы можете просто ввести Console в текстовое поле!
Теперь попробуйте. это должно работать
Viraj 24 март 2013, в 06:34
Поделиться
Это сработало для моего VS2013 Express, но принятого ответа нет. Очень странно, поскольку принятый ответ работал для всех версий Visual Studio, которые я использовал в прошлом.
Michael Calvin 28 янв. 2015, в 20:39
Это должен быть принятый ответ, включенный в текущий принятый ответ.
Ryan 02 июнь 2016, в 02:27
Jonathan Mee 19 окт. 2016, в 11:35
user7468879 28 янв.
2017, в 20:27
это реальное решение ++
Bosak 25 окт. 2017, в 16:55
Это действительно правильно. Привычное CTRL+F5 завершится ошибкой, если, скажем, добавить новый файл C ++ в пустой проект.
user2023370 14 янв. 2019, в 11:55
Показать ещё 4 комментария
Вот способ для C/С++:
#include #ifdef _WIN32 #define WINPAUSE system(«pause») #endif
Поместите это вверху вашей программы, и ЕСЛИ он находится в системе Windows ( #ifdef _WIN32 ), тогда он создаст макрос с именем WINPAUSE . Всякий раз, когда вы хотите, чтобы ваша программа приостанавливалась, вызовите WINPAUSE; , и она приостанавливает программу, используя команду DOS. Для других систем, таких как Unix/Linux, консоль не должна выходить из выхода программы в любом случае.
Shaun 06 авг. 2012, в 16:28
Поделиться
Этот метод не работает в Visual C ++ (если вы не включите заголовок?)
wmac 06 дек. 2015, в 18:21
Geowil 23 янв. 2016, в 20:02
Я не включил ни одну библиотеку или пространство имен, но он работает правильно, большое спасибо.
Halil İbrahim Oymacı 19 март 2016, в 21:47
Не делай этого, пожалуйста. Команда pause зависит от Windows.
firegurafiku 30 сен. 2016, в 09:33
Работал для меня на Visual Studio 2013 Express. 🙂
Anirban 07 окт.
2016, в 08:25
Нет необходимости создавать макрос — просто вызовите систему («пауза»). Окружите его #ifdef, если вам нужно использовать его в других системах.
Dan 07 сен. 2017, в 18:45
Показать ещё 4 комментария
Откройте меню отладки- > Нажмите Начать без использования
pashaplus 28 сен. 2012, в 10:20
Поделиться
Это даже не вариант в VS 2008, если не была выбрана среда разработки C #. CTRL + F5 работает, хотя. Вы также можете добавить это как кнопку на панель инструментов через Инструменты> Настроить.
perry 07 янв. 2015, в 01:16
Если у вас есть несколько проектов, установите соответствующий как стартовый проект
CAD bloke 10 март 2015, в 04:09
Отлично ! Это работает даже в VS 2017.
Christophe 03 март 2018, в 09:16
Показать ещё 1 комментарий
Если вы используете .NET, поместите Console.ReadLine() до конца программы.
Cheeso 21 нояб. 2009, в 17:08
Поделиться
+1 — либо это, либо Console.ReadKey() чтобы просто подождать любую клавишу.
Fredrik Mörk 21 нояб. 2009, в 16:02
-1, модифицирующий код для работы вокруг IDE
binki 26 авг.
2014, в 15:37
Странно, это не влияет на мое приложение. Он по-прежнему закрывается без ожидания ввода пользователя.
Kokodoko 29 март 2015, в 11:04
Тогда ваш код, скорее всего, завершается до того, как достигнет этой точки.
Indeed 09 янв. 2017, в 22:02
Показать ещё 2 комментария
попробуйте вызвать getchar() прямо перед возвратом main() .
Magarusu 04 апр. 2013, в 18:06
Поделиться
Не работает в VS 2008 для простого консольного приложения Hello Name. cout, cin, cout, getchar (), консоль все еще закрывается. В чем дело?
perry 07 янв. 2015, в 01:11
Попробуйте поставить getchar () дважды, если у вас есть cout перед getchar (). getchar () ожидает char, а вы уже передаете его cout . Дайте мне знать, если это поможет 🙂
Magarusu 08 янв. 2015, в 08:42
(/SUBSYSTEM: CONSOLE) не работал для моего vs2013 (у меня его уже было).
«run without debugging» не является параметром, так как я не хочу переключаться между отладкой и просмотром вывода.
int main() < . #if _DEBUG LOG_INFO(«end, press key to close»); getchar(); #endif // _DEBUG return 0; >
Решение, используемое в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Насколько я помню, в vs2008 нам не нужны такие трюки.
fantastory 15 окт. 2014, в 16:18
Поделиться
Это работает в VS 2015, хотя.
Nik-Lz 23 янв.
2017, в 01:40
Здесь решение, что (1) не требует каких-либо изменений кода или точек останова, и (2) приостанавливается после завершения программы, чтобы вы могли видеть все, что было напечатано. Он остановится после F5 или Ctrl + F5. Основной недостаток заключается в том, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.
-
Создайте командный файл. Я назвал мой runthenpause.bat со следующим содержимым:
%1 %2 %3 %4 %5 %6 %7 %8 %9 pause
Теперь, когда вы запустите, runthenpause.bat запустит ваше приложение, и после того, как ваше приложение завершится, вы остановитесь, чтобы увидеть вывод консоли.
Я опубликую обновление, если выясню, как загрузить символы. Я пробовал /Z7 за этот, но безуспешно.
cxw 21 июль 2016, в 00:45
Поделиться
Это по-прежнему не поддерживает отладку, но, по крайней мере, решает проблему невозможности увидеть выходные данные, например, о VLD, в отличие от всех других ответов.
Источник: overcoder.net
Предотвращение закрытия окна консоли в приложении консоли Visual Studio C / C ++
Это, вероятно, неудобный вопрос, поскольку, без сомнения, ответ ослепляюще очевиден. Я использовал Visual Studio в течение многих лет, но это первый раз, когда я занимаюсь разработкой «консольного приложения». Когда я запускаю свое приложение, появляется окно консоли, появляется вывод программы, а затем окно закрывается при выходе из приложения. Есть ли способ оставить его открытым до тех пор, пока я не проверю вывод, или просмотреть результаты после закрытия окна?
Создан 21 ноя.
Monodevelop делает то, что вы ожидаете. — ctrl-alt-delor
Согласовано. Я думаю, что лучший ответ для VS 2017 и новее — от chronoxor. — All the Rage
21 ответы
Начиная с Visual Studio 2017 (15.9.4) есть возможность:
Tools->Options->Debugging->Automatically close the console
Соответствующий фрагмент из Документация Visual Studio:
Автоматически закрывать консоль при остановке отладки: Сообщает Visual Studio закрыть консоль в конце сеанса отладки.
Создан 20 июн.

Я только что тестировал это в VS2017 и VS2019. Это требует как настройки подсистемы на КОНСОЛЬ, так и выключения этой опции. При наличии одного или другого окно автоматически закрывается. — Кейси
Это по-прежнему закрывает для меня окно, если я запускаю несколько проектов из одного и того же решения. — Серж Рогач
Я считаю, что это правильный ответ для VS 2017 и последующих лет. Жаль, что этого нет в старых версиях. — Последний крик моды
Как изменить подсистему для проекта Makefile? — Андре ван Шубрук
Если вы запускаете без отладки (Ctrl + F5), то по умолчанию вам будет предложено нажать клавишу возврата, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова на последней строке.
Создан 21 ноя.
Если у вас есть приложение C ++ и работает без отладки, а окно консоли все еще закрывается, вам нужно не забыть явно установить для подсистемы значение Console в разделе Configuration Properties / Linker / System. Это может произойти, если вы начнете с пустого проекта, в результате чего подсистема останется неустановленной. — Тревор Робинсон
У меня не сработало 🙁 Окно консоли открывается и сразу закрывается, но журнал останавливается и ждет дополнительного нажатия F5 — КодиБагштейн
Тревор Робинсон прав. Если запустить пустой проект, а элемент C ++. Вам нужно перейти в View-> Property Manager-> Property (значок гаечного ключа) -> Config. Свойства-> Линкер-> Система-> Подсистема-> во всплывающем меню выберите Консоль. — достопочтенный сэр
Я работаю над сообществом VS 2017. ctrl+f5 не работает, нет Properties когда я щелкаю правой кнопкой мыши по проекту, также wrench icon неактивен. — Ketan
Щелкните правой кнопкой мыши свой проект
Свойства> Свойства конфигурации> Компоновщик> Система
Выберите Консоль (/ ПОДСИСТЕМА: КОНСОЛЬ) in SubSystem вариант или вы можете просто ввести Консоли в текстовом поле! Теперь попробуйте . он должен работать
Источник: stackovergo.com