c консольное приложение не закрывалось

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Если консоль закрывается после выполнения программы

Очень часто новички сталкиваются с такой проблемой: запускают программу, а консоль закрывается после выполнения программы и не дает просмотреть результат ее работы. В этот статье мы поговорим о том, что нужно сделать, чтобы этого избежать.

Рассмотрим программу на языке C, которая выводит в консоль надпись “Hello world!”:

Запустим программу, для этого нажмем в Visual Studio клавишу F5. Консоль появляется и мгновенно исчезает. Существуют два пути решения этой проблемы.

Первый. Самый простой. Нажать одновременно клавиши Ctrl и F5. Смотрим результат:

consoleIsNotclosedC1

Второй способ (которым почему-то пользуется большинство начинающих. Дописать в конце программы функцию, которая считывает символ с клавиатуры (_getch(), чтобы эта функция работала, подключаем библиотеку ), тем самым программа ждет ввода символа и консоль не закрывается, а мы смотрим на результат ее работы.

Источник

Как остановить немедленное завершение работы консольного приложения C++?

в последнее время я пытаюсь изучить C++ от этот сайт. К сожалению, всякий раз, когда я пытаюсь запустить один из примеров кода, я вижу, что программа открывается примерно на полсекунды, а затем сразу закрывается. Есть ли способ остановить программу от немедленного закрытия, чтобы я мог видеть плоды своих усилий?

30 ответов:

тем не менее, я оставлю это здесь, и, возможно, кто-то еще найдет это полезным. Я использовал его много как быстрый Хак видов, когда написание тестов во время разработки.

в конце main функция, вы можете вызвать std::getchar();

Если вы используете Visual Studio и запускаете консольное приложение из IDE:

клавишей CTRL-F5 (запуск без отладки) запустит приложение и будет держать окно консоли открытым, пока вы не нажмете любую клавишу.

решение Джеймса работает для всех платформ.

также на Windows вы также можете добавить следующее непосредственно перед возвращением из main функция:

Если вы используете Microsoft Visual C++ 2010 Express и столкнетесь с проблемой с CTRL+F5 не работает для сохранения консоли открытой после завершения программы, взгляните на этот поток MSDN.

вероятно, ваша IDE настроена на закрытие консоли после запуска CTRL+F5; фактически, «пустой проект» в Visual C++ 2010 закрывает консоль по умолчанию. Чтобы изменить это, сделайте так, как предложил модератор Microsoft:

Я обычно просто ставлю точку останова на main() закрывающая фигурная скобка. Когда конец программы будет достигнут любыми средствами, точка останова ударит, и вы можете ALT-Tab в окно консоли для просмотра вывода.

Почему бы просто не запустить программу из консоли ie запустить программу из cmd.exe, если вы используете Windows. Таким образом, окно остается открытым после завершения программы.

[EDIT]: когда я использую KDevelop4, есть полноценный экземпляр Bash (Linux CLI), работающий на вкладке в нижней части IDE. Это то, что я использую в таких обстоятельствах.

перед окончанием кода вставьте следующую строку:

это будет держать консоль, пока вы не нажмете клавишу.

Если вы запускаете свой код из компетентной IDE, например Code:: Blocks, IDE будет управлять консолью, которую он использует для запуска кода, сохраняя ее открытой при закрытии приложения. Вы не хотите добавлять специальный код, чтобы держать консоль открытой, потому что это помешает ей работать правильно, когда вы используете ее для реального, вне IDE.

хорошо, я предполагаю, что вы находитесь на Windows, используя Visual Studio. зачем? Ну, потому что если вы находитесь на какой-то ОС Linux, то вы, вероятно, будете запускать его с консоли.

в любом случае, вы можете добавить дерьмо в конце вашей программы, как другие предлагают, или вы можете просто нажать CTRL + F5 (запуск без отладки)и Visual Studio оставит консоль после завершения.

Если вы действительно отлаживаете приложение в Visual C++, нажмите F5 или зеленый треугольник на панели инструментов. Если вы на самом деле не отлаживаете его (у вас нет установленных точек останова), нажмите Ctrl+F5 или выберите «пуск без отладки» в меню (обычно это меню отладки, которое я согласен, сбивает с толку.) Это будет немного быстрее, и что более важно для вас, будет пауза в конце без необходимости изменения кода.

кроме того, откройте командную строку, перейдите в папка, в которой находится ваш exe, и запустите его, введя его имя. Таким образом, когда он закончит работу, командная строка не закрывается, и вы можете видеть вывод. Я предпочитаю оба этих метода для добавления кода, который останавливает приложение так же, как его закончил.

добавьте следующую строку в конце программы. Он будет пытаться захватить некоторую форму пользовательского ввода, таким образом, он останавливает консоль от автоматического закрытия.

Источник

Предотвращение закрытия окна консоли в консольном приложении Visual Studio C / C++

Это наверное embarasing вопрос, без сомнения, ответ будет совершенно очевидной.

Я использовал Visual Studio в течение многих лет, но это первый раз, когда я сделал какую-либо разработку консольного приложения.

когда я запускаю приложение, появляется окно консоли, вывод программы, а затем окно закрывается по мере выхода приложения.

есть ли способ либо сохранить его открытым, пока я не проверил вывод, либо просмотреть результаты после окно закрыто?

16 ответов

Если вы работаете без отладки (Ctrl+F5), то по умолчанию он предлагает вам нажать return, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова на последней строке.

Правой Кнопкой Мыши на вашем проекте

теперь попробуйте. он должен работать

вот способ для C / C++:

попробуйте позвонить getchar() перед main() возвращает.

(/SUBSYSTEM:CONSOLE) не работал для моего vs2013 (у меня уже был).

«запуск без отладки» не является опцией, так как я не хочу переключаться между отладкой и просмотром вывода.

решение используется в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Как я помню, в vs2008 нам не нужны такие фокусы.

вот решение, которое (1) не требует никаких изменений кода или точек останова и (2) приостанавливает после завершения работы программы так что вы можете видеть все это было напечатано. Он будет приостановлен после F5 или Ctrl+F5. Основным недостатком является то, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.

в первой строке будет выполняться любая команда, которую вы предоставляете, и до восьми аргументов. Вторая строка будет. пауза.

откройте свойства проекта | свойства конфигурации | отладка.

теперь, когда вы бежите, runthenpause.bat запустит ваше приложение, и после того, как ваше приложение завершится, сделает паузу для вас, чтобы увидеть вывод консоли.

я опубликую обновление, если выясню, как загрузить символы. Я пытался!—5—> per этой но без успеха.

вы можете запустить исполняемый файл из командной строки. Таким образом, вы могли видеть все выходные. Или вы можете сделать что-то вроде этого:

и таким образом окно не будет закрываться, пока вы не введете данные для a переменной.

добавить «/ pause » в поле аргументы команды в разделе отладки в свойствах проекта.

просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не имеет контроля над ним).

Если это не работает, добавьте следующее в конец вашего кода:

это ждать, пока вы нажмете клавишу, чтобы закрыть окно терминала, как только код достигнет конца.

Если вы хотите сделать это в нескольких местах, поставить выше код в метод (например, private void Pause() ) и вызов Pause() каждый раз, когда программа достигает возможного конец.

просто поместите в качестве последней строки кода:

несколько лучшее решение:

в начале вашей программы.

убедитесь, что сделать любой из них в конце

Visual Studio 2015 С импорт. Потому что я ненавижу когда примеры кода не дают необходимого импорта.

Источник

Предотвращение закрытия окна консоли в приложении консоли Visual Studio C/С++

Это, вероятно, вопрос о запуске, поскольку, несомненно, ответ ослепительно очевиден.

Я использовал Visual Studio в течение многих лет, но это первый раз, когда я создал любую консольную программу.

Когда я запускаю приложение, появляется окно консоли, появляется выход программы, а затем окно закрывается по мере выхода приложения.

Есть ли способ открыть его, пока я не проверил вывод или не просмотрел результаты после закрытия окна?

ОТВЕТЫ

Ответ 1

Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает вам нажать return, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова в последней строке.

Ответ 2

Щелкните правой кнопкой мыши на вашем проекте

Свойства> Свойства конфигурации> Линкер> Система

Выберите Console (/SUBSYSTEM: CONSOLE) в опции SubSystem или вы можете просто ввести Console в текстовое поле!

Теперь попробуйте. это должно работать

Ответ 3

Ответ 4

Откройте меню отладки- > Нажмите Начать без использования

Ответ 5

Ответ 6

Ответ 7

(/SUBSYSTEM: CONSOLE) не работал для моего vs2013 (у меня его уже было).

«run without debugging» не является параметром, так как я не хочу переключаться между отладкой и просмотром вывода.

Решение, используемое в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Насколько я помню, в vs2008 нам не нужны такие трюки.

Ответ 8

Здесь решение, что (1) не требует каких-либо изменений кода или точек останова, и (2) приостанавливается после завершения программы, чтобы вы могли видеть все, что было напечатано. Он остановится после F5 или Ctrl + F5. Основной недостаток заключается в том, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.

Создайте командный файл. Я назвал мой runthenpause.bat со следующим содержимым:

Первая строка будет запускать любую команду, которую вы предоставляете, и до восьми аргументов. Вторая строка будет. пауза.

Откройте свойства проекта | Конфигурационные свойства | Отладка.

Теперь, когда вы запустите, runthenpause.bat запустит ваше приложение, и после того, как ваше приложение завершится, вы остановитесь, чтобы увидеть вывод консоли.

Я опубликую обновление, если выясню, как загрузить символы. Я пробовал /Z7 за этот, но безуспешно.

Ответ 9

просто введите свою последнюю строку кода:

Ответ 10

Начиная с Visual Studio 2017 (15.9.4) есть опция:

Автоматически закрывать консоль, когда отладка прекращается:

Сообщает Visual Studio закрыть консоль в конце сеанса отладки.

Ответ 11

Вы можете запустить исполняемый файл из командной строки. Таким образом, вы можете увидеть весь вывод. Или вы можете сделать что-то вроде этого:

Ответ 12

добавить «| pause» в поле аргументов команды в разделе отладки в свойствах проекта.

Ответ 13

Просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не контролирует его).

Если это не сработает, добавьте следующее в конец вашего кода:

Подождите, пока вы нажмете клавишу, чтобы закрыть окно терминала, как только код достигнет конца.

Если вы хотите сделать это в нескольких местах, поместите вышеуказанный код в метод (например, private void Pause() ) и вызовите Pause() всякий раз, когда программа достигает возможного конца.

Ответ 14

Несколько лучшее решение:

в начале вашей программы.

Ответ 15

Ответ 16

В моем случае я испытал это, когда создал проект Empty C++ в версии VS 2017 для сообщества. Вам нужно будет установить для подсистемы значение «Консоль (/SUBSYSTEM: CONSOLE)» в разделе «Свойства конфигурации».

Ответ 17

Вы также можете использовать эту опцию

Ответ 18

Ответ 19

Visual Studio 2015, импорт. Потому что я ненавижу когда примеры кода не дают необходимых импортов.

Источник

Как остановить автоматическое закрытие консольных приложений C#? [дубликат]

этот вопрос уже есть ответ здесь:

мои консольные приложения в Visual Studio закрываются автоматически, поэтому я хотел бы использовать что-то вроде C system(«PAUSE») чтобы «приостановить» приложения в конце его выполнения, как можно Я достигну этого?

9 ответов

Edit: украл ключевой символ у Дарина.

попробовать его. Я всегда это делаю, и консоль показывает мне мои результаты, открытые на нем. Дополнительный код не требуется.

Console.ReadLine() ждать, пока пользователь Enter или Console.ReadKey ждать любой ключ.

для его закрытия, когда кто-то нажимает любую клавишу, или:

Для когда пользователь вводит что-то и нажимает enter.

Ctrl + F5 лучше, потому что вам не нужны дополнительные строки. И вы можете, в конце концов, нажать enter и выйти из режима работы.

но, когда вы запускаете программу с F5 и ставите точку останова, вы можете отлаживать свое приложение, и это дает вам другие преимущества.

кроме того, вы можете отложить закрытие, используя следующий код:

Примечание Sleep использует миллисекунд.

эти решения, упомянутые изменить, как работает ваша программа.

вы можете сбиться с курса #if DEBUG и #endif вокруг вызовов консоли, но если вы действительно хотите предотвратить закрытие окна только на вашем компьютере dev под Visual Studio или если VS не работает, только если вы явно настроили его, и вы не хотите раздражать ‘Press any key to exit. ‘ при запуске из командной строки, путь заключается в использовании System.Diagnostics.Debugger API.

это также работает для отладки программ, которые нуждаются в повышенных привилегиях или которые должны быть в состоянии поднять себя.

Если вы не хотите, чтобы программа закрывалась, даже если пользователь нажимает anykey;

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • c консольное приложение без окна
  • c как открыть вторую форму