Консоль закрывается после выполнения программы
Всем привет, такая проблема, после выполнения программы окно консоли закрывается. Как можно предотвратить это, не используя system(«pause»)?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Консоль закрывается в процессе выполнения программы — С++
В Visual Studio в процессе выполнения программы и в процессе работы закрывается через какое- то.
Не закрывать консоль после выполнения программы
Как сделать чтобы после выполнения програмы блэкскрин не закрывался?
Консоль закрывается после перехода в функцию
После выполнения функции main консоль закрывается, в чем ошибка? int _tmain(int argc, _TCHAR*.
Закрывается консоль сразу после вывода результата
вот такая проблема, считает всё верно, но сразу после результата консоль закрывается, и помогите.
Как предотвратить автоматическое закрытие консоли после выполнения командного файла
Может ли кто-нибудь сказать мне, какую команду поставить в конце пакетного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файла?
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 перед вашей командой. & cmd /k не будет работать.
Noumenon 06 май 2018, в 13:10
Если вы хотите, чтобы cmd.exe не закрывался и мог продолжать печатать, используйте cmd /k
Просто почувствовал необходимость уточнить, что делает /k (с сайта Windows):
/k : Выполняет команду, указанную в строке, и продолжает.
Итак, cmd /k без последующей команды в конце файла bat просто сохранит окно cmd.exe для дальнейшего использования.
С другой стороны, pause в конце командного файла просто приостанавливает процесс и завершает cmd.exe при первой кнопке, нажав
Valentine Stone 22 янв. 2015, в 07:22
Поделиться
Добавьте cmd.exe в новую строку под кодом, который вы хотите выполнить:
c:\Python27\python D:\code\simple_http_server.py cmd.exe
lyfing 16 нояб. 2014, в 15:38
Поделиться
Ниже приведен список команд в командном файле, который откроет новые окна командной строки, а новые окна не будут автоматически выходить.
start "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»:
@echo off cmd /k foo.bat
Я считаю, что это очень полезно, когда я устанавливаю одноразовые переменные среды.
Erich Chen 04 янв. 2017, в 10:04
Поделиться
Вы можете просто поместить cmd /k (без какой-либо команды) в конец файла foo.bat и запустить его. Вам не нужен отдельный файл start.bat .
ADTC 16 окт. 2017, в 00:13
set /p=
. Он будет ожидать ввода пользователем и высвободит поток при нажатии клавиши.
runas /user:# "" >nul 2>&1
который будет делать то же самое, если ничего из пользовательского ввода не будет отображаться и не останется в истории команд.
npocmaka 15 фев. 2015, в 02:57
Поделиться
Этот маленький хак просит пользователя ввести ключ и сохраняет его в переменной% exitkey% (эта переменная может быть вызвана тем, что вам нравится, хотя).
set /p exitkey= "Press any key to continue. "
NB: пространство после ‘=’ очень важно
Steven Mark Ford 29 сен. 2017, в 05:52
Поделиться
Легко, добавьте cmd в свою последнюю строку летучей мыши, НО! если вы reset или очистите свой системный путь, вы должны запустить свой cmd с полным путем, например:
%windir%\system32\cmd.exe
Например, у меня есть файл bat для reset jdk для старой версии, например:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45 %windir%\system32\cmd.exe
так как я reset системный путь, я должен запустить cmd с полным путем или система не сможет найти cmd.exe, он не сможет запустить cmd и просто закроет окно, t см. сообщение об ошибке.
Wei Kleeff 04 сен. 2017, в 04:17
Поделиться
Есть два способа сделать это зависит от варианта использования
1) Если вы хотите, чтобы приглашение Windows cmd оставалось открытым, чтобы вы могли увидеть результат выполнения и закрыть его впоследствии; использовать
2), если вы хотите, чтобы приглашение Windows cmd оставалось открытым и позволяло выполнять некоторые последующие команды; использовать
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 и отображает его
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode
Если консоль закрывается после выполнения программы
Очень часто новички сталкиваются с такой проблемой: запускают программу, а консоль закрывается после выполнения программы и не дает просмотреть результат ее работы. В этот статье мы поговорим о том, что нужно сделать, чтобы этого избежать.
Рассмотрим программу на языке C, которая выводит в консоль надпись «Hello world!»:
printf ( «Hello world!\n» ) ;
Запустим программу, для этого нажмем в Visual Studio клавишу F5. Консоль появляется и мгновенно исчезает. Существуют два пути решения этой проблемы.
Первый. Самый простой. Нажать одновременно клавиши Ctrl и F5. Смотрим результат:
Второй способ (которым почему-то пользуется большинство начинающих. Дописать в конце программы функцию, которая считывает символ с клавиатуры (_getch(), чтобы эта функция работала, подключаем библиотеку ), тем самым программа ждет ввода символа и консоль не закрывается, а мы смотрим на результат ее работы.
ITExplain
Please read How to support Ukraine if you haven’t done it yet!
Advertisements
Recent Posts
- How to generate random number in Jenkins
- Error loading shared library libresolv.so.2: No such file or directory
- Windows Server – A service installation section in this INF is invalid
- How to clone git without/ignore lfs files
- ImportError: no module named ‘ssd1306’ in micropython
Recent Comments
Archives
Categories
Meta
C++ как сделать чтобы консоль не закрывалась
Spread the love
Чтобы окно программы не закрывалось после завершения ее работы, достаточно в конце добавить одну строчку (после кода всей программы). Есть несколько вариантов:
1. Кросплатформенный (Windows, Linux, …)
Используем cin из библиотеки iostream
using namespace std;
int main ()
<
int i = 0;
cout cin >> i;
return 0;
>
После выполнения вышеприведенного кода программа не закроется, а будет ждать ввода. Только после ввода числа (или символа) программа завершится.
Но можно написать программу и таким образом, чтобы она завершалась после нажатия любой клавиши. В этом случае используем функцию cin.get() из библиотеки iostream .
using namespace std;
После выполнения кода программа будет ожидать нажатия любой клавиши.
2. Только под Windows
Используем функцию system и передаем ей параметр “PAUSE” из библиотеки stdlib.h . Не рекомендуется использовать данный способ!
Код:
Код:
#include
#include
#include
using namespace std;
int main ()
<
int i = 0;
cout system(“PAUSE”);
return 0;
>