Как сделать чтобы программа не закрывалась после выполнения

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

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

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

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

ОТВЕТЫ

Ответ 1

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

Ответ 2

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

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

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

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

Командная строка закрывается после выполнения команды (Решение)

Ответ 3

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

#include #ifdef _WIN32 #define WINPAUSE system(«pause») #endif

Поместите это вверху вашей программы, и ЕСЛИ он находится в системе Windows ( #ifdef _WIN32 ), тогда он создаст макрос с именем WINPAUSE . Всякий раз, когда вы хотите, чтобы ваша программа приостанавливалась, вызовите WINPAUSE; , и она приостанавливает программу, используя команду DOS. Для других систем, таких как Unix/Linux, консоль не должна выходить из выхода программы в любом случае.

Ответ 4

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

Ответ 5

Если вы используете .NET, поместите Console.ReadLine() до конца программы.

Ответ 6

попробуйте вызвать getchar() прямо перед возвратом main() .

Ответ 7

(/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 нам не нужны такие трюки.

Ответ 8

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

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

%1 %2 %3 %4 %5 %6 %7 %8 %9 pause

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

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

Читайте также:
Программа где поют и встают

C++ закрывается консоль. Что делать? Задержка экрана консоли. Урок #21.

Ответ 9

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

system(«pause»);

Ответ 10

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

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

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

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

Ответ 11

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

int a = 0; scanf(«%d», return YOUR_MAIN_CODE;

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

Ответ 12

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

Ответ 13

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

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

Console.WriteLine(«Press any key to exit. «); Console.ReadKey();

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

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

Ответ 14

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

atexit([] < system(«PAUSE»); >);

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

  • может использовать std:: exit()
  • может иметь несколько возвратов из основного
  • вы можете запустить свою программу под отладчиком
  • Независимый IDE (+ независимый от ОС, если вы используете трюк cin.sync(); cin.ignore(); вместо system(«pause»); )
  • необходимо изменить код
  • не будет останавливаться на std:: terminate()
  • все равно произойдет в вашей программе вне сеанса IDE/debugger; вы можете предотвратить это под Windows, используя:

extern «C» int __stdcall IsDebuggerPresent(void); int main(int argc, char** argv) < if (IsDebuggerPresent()) atexit([] ); . >

Ответ 15

  1. system(«pause»);

Обязательно сделайте любой из них в конце функции main() и перед оператором return .

Ответ 16

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

  1. Зайдите в «Просмотр», затем выберите «Менеджер недвижимости»
  2. Щелкните правой кнопкой мыши на проекте/решении и выберите «Свойство». Откроется страница свойств теста.
  3. Перейдите к компоновщику, затем выберите «Система»
  4. Нажмите «Подсистема» и появится выпадающий
  5. Выберите «Консоль (/SUBSYSTEM: CONSOLE)»
  6. Применить и сохранить
  7. В следующий раз, когда вы запустите свой код с помощью «CTRL +F5», вы должны увидеть результат.

Ответ 17

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

#include /* run this program using the console pauser or add your own getch, system(«pause») or input loop */ int main()

Ответ 18

Используйте Console.ReadLine() в конце программы. Это будет держать окно открытым, пока вы не нажмете клавишу Enter . Подробнее см. Https://docs.microsoft.com/en-us/dotnet/api/system.console.readline.

Ответ 19

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

#include ; int main()

Источник: ask-dev.ru

Как предотвратить автоматическое закрытие консоли после выполнения командного файла

Может ли кто-нибудь сказать мне, какую команду поставить в конце пакетного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файла?

Читайте также:
Программа которая передает музыку по радио

joe 12 июнь 2009, в 19:06
Поделиться

Было бы хорошо, если бы был способ определить, был ли файл .cmd запущен двойным щелчком в проводнике (тогда вы хотите, чтобы он сделал паузу в конце), или если он был запущен уже открытой командной строкой. В последнем случае (и особенно если он выполняется другой программой) вам не нужна пауза. Я не нашел хорошего решения для этого случая (и обычно использую переменную if% NOPAUSE%, но это работает только для родительских программ, а не для оболочек paremt).

eckes 06 нояб. 2012, в 17:34
Есть способ: stackoverflow.com/questions/3551888/…
EM0 17 май 2017, в 09:57
Поделиться:
command-line

14 ответов

Лучший ответ

В пакетных файлах Windows/DOS:

pause

Это печатает приятное сообщение «Press any key to continue . . . «

Или, если вы не хотите сообщение «Press any key to continue . . .» , сделайте это вместо этого:

pause >nul
Dave Bauman 12 июнь 2009, в 20:54
Поделиться

Ни одно из предложенных здесь предложений не работает для меня, если дважды щелкнуть файл bat. Это серверная среда (и я должен запустить скрипт в ней), чтобы они могли изменить поведение. Это не меняет мою цель.

Чтобы командное окно оставалось открытым, я могу выводить сообщение об ошибке.

Henrik Erlandsson 28 окт. 2016, в 07:28

Да, это не всегда работает в зависимости от окружающей среды. Для более надежного решения см. Мой ответ ниже. По сути, просто сделайте set / p exitkey = «Нажмите любую клавишу, чтобы продолжить . «

Steven Mark Ford 29 сен. 2017, в 04:08

Зависит от точного вопроса!

Обычно pause выполняет задание в файле .bat.

Если вы хотите, чтобы cmd.exe не закрывался, чтобы продолжать печатать, используйте команду cmd /k в конце файла.

Rutger Nijlunsing 12 июнь 2009, в 19:40
Поделиться
Это работает, когда пауза нет.
Phillip 14 март 2013, в 17:55

Если вы запускаете команды Windows через диалоговое окно «Выполнить», вместо этого введите cmd /k перед вашей командой. title» call abcd.exe param1 param2 start «title» call xyz.exe param1 param2
user6928445 05 окт. 2016, в 20:26
Поделиться

В моем случае у меня была какая-то ошибка во время выполнения команды терминала, и поэтому команды ‘pause’ и ‘cmd / k’ не помогли мне остановить программу из-за ошибки. Этот пример помог мне показать, у меня есть ошибка, а также остановился совсем из терминала.

Спасибо!

HowDoYouTellForAChild 08 окт. 2018, в 12:03

Вызвать cmd в конце командного файла.

user4155296 17 окт. 2014, в 21:53
Поделиться

мой способ — написать фактическую партию (говоря «foo.bat» ), чтобы закончить работу; затем создайте еще один «start.bat»:

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

Erich Chen 04 янв. 2017, в 10:04
Поделиться

Вы можете просто поместить cmd /k (без какой-либо команды) в конец файла foo.bat и запустить его. Вам не нужен отдельный файл start.bat .

Читайте также:
Разноуровневые программы в доп образовании это

ADTC 16 окт. 2017, в 00:13

set /p=

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

runas /user:# «» >nul 2>Press any key to continue. »

NB: пространство после ‘=’ очень важно

Steven Mark Ford 29 сен. 2017, в 05:52
Поделиться

Легко, добавьте cmd в свою последнюю строку летучей мыши, НО! если вы reset или очистите свой системный путь, вы должны запустить свой cmd с полным путем, например:

%windir%system32cmd.exe

Например, у меня есть файл bat для reset jdk для старой версии, например:

PATH=C:Program FilesJavajdk1.6.0_45bin;C:apache-ant-1.7.1bin SET JAVA_HOME=C:Program FilesJavajdk1.6.0_45 %windir%system32cmd.exe

так как я reset системный путь, я должен запустить cmd с полным путем или система не сможет найти cmd.exe, он не сможет запустить cmd и просто закроет окно, t см. сообщение об ошибке.

Wei Kleeff 04 сен. 2017, в 04:17
Поделиться

Есть два способа сделать это зависит от варианта использования

1) Если вы хотите, чтобы приглашение Windows cmd оставалось открытым, чтобы вы могли увидеть результат выполнения и закрыть его впоследствии; использовать

2), если вы хотите, чтобы приглашение Windows cmd оставалось открытым и позволяло выполнять некоторые последующие команды; использовать

Изображение 7243

Hitesh Sahu 02 сен. 2017, в 10:19
Поделиться

Я знаю, что опаздываю, но мой предпочтительный способ:

:programend pause>nul GOTO programend

Таким образом, пользователь не может выйти с помощью ввода.

decadenza 05 июнь 2017, в 15:07
Поделиться

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

decadenza 11 нояб. 2018, в 19:22

Возможность 1: Просто создайте 2 файла .bat и напишите в первую:

start // name of 2nd batch file exit

Пакетный файл 2 — это файл, который не закрывается в конце. Итак, теперь, когда вы открываете партию № 1, она начнет 2-й и сам гной. Когда второй заканчивается, он не будет полностью закрываться (до тех пор, пока вы не положите выход в конце)

Возможность 2: Пакетный файл 1:

call cls echo End of file pause

Когда второй файл заканчивается, он снова переходит к файлу 1 и выводит оставшуюся часть. С этим вы даже можете сделать обработчики ошибок. Если nr.1 сбой, он переходит в nr.2 и отображает его

Источник: overcoder.net

Автоматическое закрытие консоли

Чтобы консоль автоматически закрывалсь при остановке отладки, нужно в Visual Studio включите параметр Автоматически закрыть консоль при остановке отладки.

Находится он: Средства — Параметры — Отладка — Общие

Amney

Чтобы консоль автоматически закрывалсь при остановке отладки, нужно в Visual Studio включите параметр Автоматически закрыть консоль при остановке отладки.

Находится он: Средства — Параметры — Отладка — Общие

Это типо если отладка норм прошла, без паники, то она закроется, а если там проблемы какие — то с отладкой, то консоль не закроется?)

Источник: tehadm.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru