Как остановить консольное приложение C ++ от немедленного выхода? - PullRequest
181 голосов
/ 27 марта 2010

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

Ответы [ 35 ]

0 голосов
/ 03 апреля 2016

Вместо того, чтобы нажимать кнопку запуска, нажмите CTRL и F5 одновременно, это даст вам любую клавишу для продолжения сообщения.Или введите «(предупреждение используйте это только для тестирования не настоящих программ, так как антивирусам это не нравится !!!!)» в конце вашей основной функции, но: (предупреждение используйте это только для тестирования не реальных программ, так как антивирус нене нравится !!!!)

0 голосов
/ 01 января 2017

Самый умелый способ сделать это, оставив

while (true) {
}

в конце последней функции, выполняемой вашей программой.

(Если кто-то, кто не знает, что это значит, это в основном бесконечный цикл. Поскольку внутри скобок ничего не содержится, он будет продолжать ничего не делать вечно, он буквально НИЧЕГО не делает, но для программы задание как у другого).

0 голосов
/ 31 мая 2010

Вы даже можете объявить целое число в начале вашей функции main() (скажем, int a;) и поставить std::cin >> a; непосредственно перед возвращаемым значением. Таким образом, программа будет продолжать работать, пока вы не нажмете клавишу и не войдете.

0 голосов
/ 12 декабря 2015

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

0 голосов
/ 01 января 2012

Кажется, это хорошо работает:

cin.clear();
cin.ignore(2);

Если вы сначала очистите буфер, это не будет проблемой при чтении следующего. По какой-то причине cin.ignore(1) не работает, должно быть 2.

0 голосов
/ 16 июня 2015

Я использовал cin.get(), и это сработало, но однажды мне нужно было использовать другой cin.get([Array Variable]) перед этим, чтобы получить строку с пустым символом в середине. поэтому cin.get() не избежал закрытия окна командной строки. Наконец я нашел другой способ: Нажмите CTRL + F5 , чтобы открыть во внешнем окне, и Visual Studio больше не может его контролировать. Просто спросит вас о закрытии после запуска финальных команд.

0 голосов
/ 05 мая 2015

просто поместите это в конце вашего кода:

while (1) {}

эта функция будет продолжаться вечно (или до тех пор, пока вы не закроете консоль) и не даст консоли закрыться самостоятельно.

0 голосов
/ 18 мая 2015

Запустите в режиме отладки, запустите код с F5 чтобы остановить консольное приложение, не нажимайте на красный крест, а нажмите CTRL-break и вы достигнете всех точек останова в конце вашей программы.

0 голосов
/ 15 января 2015

Включите conio.h и в конце кода перед return 0 напишите _getch();

0 голосов
/ 17 сентября 2012

Все, что вам нужно сделать, установить переменную для x, а затем просто набрать ее до возврата 0;

cout<<"\nPress any key and hit enter to end...";
cin>>x;
...