Держит cmd.exe открытым в Vista - PullRequest
4 голосов
/ 08 июня 2009

Я пишу консольные программы на C ++. После компиляции, когда я запускаю программу из файлового браузера, cmd.exe автоматически закрывается, так что я не вижу вывод своих программ.

Единственный способ обойти это, как я обнаружил, - запустить программу изнутри cmd.exe

Есть ли способ сохранить cmd.exe открытым после завершения работы программы?

Есть ли настройка, которую я могу где-то изменить? Я не хочу запускать пакетный скрипт с cmd.exe / K

Спасибо!

[Редактировать] Не знаю, имеет ли это значение, но я на Vista x64

Ответы [ 5 ]

7 голосов
/ 08 июня 2009

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

 cmd.exe /K YourProgram.exe
6 голосов
/ 08 июня 2009

Пусть ваше приложение запросит нажатие клавиши перед выходом - это самое простое решение!

2 голосов
/ 08 июня 2009

Как последняя строка вашей функции main(), вы можете добавить эту строку:

system("PAUSE");

Кроме того, обязательно #include <stdlib.h>, чтобы объявить функцию system(). Это заставит консоль приостановиться. Однако, если ваша программа запускается изнутри cmd.exe, это все равно приостановит работу, что может быть нежелательно.

2 голосов
/ 08 июня 2009

Я всегда был фанатом создания командного файла, который вызывает вашу программу, а затем вызывает pause

Prog.exe Пауза

Это даст приятную подсказку «Нажмите любую клавишу для продолжения ...», она проста и не требует модификации программы.

1 голос
/ 08 июня 2009

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

Лучше установить точку останова непосредственно перед завершением вашей программы.

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

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

...