Держит cmd.exe открытым в Vista
Я пишу консольные программы на C++. После компиляции, когда я запускаю программу из файлового браузера, cmd.exe автоматически закрывается, так что я не вижу вывод своих программ.
Единственный способ обойти это, я нашел, это запустить программу изнутри cmd.exe
Есть ли способ сохранить cmd.exe открытым после завершения работы программы?
Есть ли настройка, которую я могу где-то изменить? Я не хочу запускать пакетный скрипт с cmd.exe /K
Спасибо!
[Edit] Не знаю, имеет ли это значение, но я на Vista x64
5 ответов
Попросите ваше приложение запросить нажатие клавиши перед выходом - это самое простое решение!
Вы можете настроить ярлык с ключом /K при запуске cmd.exe, чтобы он не прерывался после выполнения данной команды:
cmd.exe /K YourProgram.exe
Я всегда был фанатом простого создания командного файла, который вызывает вашу программу, а затем вызывает паузу
Prog.exe Пауза
Это даст приятную подсказку "Нажмите любую клавишу для продолжения...", она проста и не требует модификации программы.
Как последняя строка вашего main()
функция, вы можете добавить эту строку:
system("PAUSE");
Кроме того, убедитесь, что #include <stdlib.h>
объявить system()
функция. Это заставит консоль приостановиться. Однако, если ваша программа запускается изнутри cmd.exe
Это все равно будет приостановлено, что может быть нежелательно.
Я знаю, что вы спрашивали, как это сделать с помощью файловых браузеров, но в случае, если другие люди интересуются той же проблемой, но через Visual Studio:
Лучше всего установить точку останова прямо перед завершением вашей программы.
Затем вы можете развернуть свой exe, и вы можете быть уверены, что не забудете удалить запрос на ввод. Это также лучше, чем запрашивать ввод, потому что требуется много времени, чтобы закомментировать и вернуться к запросу ввода.
Я думаю, что лучше не запрашивать ввод, а вместо этого запускать вашу программу из запущенной командной строки.