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

Возможный дубликат:
Как лучше решить проблему с закрытием консоли?

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

Итак, может кто-нибудь, пожалуйста, дайте мне знать, какой самый простой способ (не должен быть супер элегантным) способ оставить консоль открытой после завершения работы программы C?


person Adam    schedule 08.12.2009    source источник
comment
Дубликат: stackoverflow.com/questions/1173208/   -  person Steve Jessop    schedule 08.12.2009


Ответы (6)


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

  • Ctrl+F5 в Visual C++.

person AraK    schedule 08.12.2009
comment
Кроме того, это можно сделать, выполнив приглашение cmd (Пуск | Выполнить | cmd), а затем запустив оттуда программу. - person wallyk; 08.12.2009
comment
@walyk вот о чем первый пункт. - person AraK; 08.12.2009
comment
Я знаю, но некоторые люди, ориентированные на графический интерфейс, не знают, как это получить. - person wallyk; 08.12.2009
comment
@wally, честно говоря, я думаю, что любой, кто пишет программу, вероятно, знает, как открыть командную строку. - person tster; 08.12.2009

Все предыдущие ответы предполагают, что вы хотите вызвать консольное приложение, а затем, по сути, оставить его «работающим» и дождаться завершения пользовательского ввода. Если это правильное предположение, то +1 к ответу GMan. Однако, если вы спрашиваете, как вызвать это консольное приложение с помощью ярлыка, Пуск->Выполнить или какого-либо другого механизма и оставить окно cmd открытым, вам нужно будет вызвать его через cmd.exe с параметром /k следующим образом:

cmd.exe /k "foo.exe"

Это запустит окно cmd, запустит ваше консольное приложение, а затем оставит окно cmd открытым. Это будет адресовано @Thanatos выше. Он прав в том, что вы должны позволить консольному приложению закрыться. Опять же, для меня неясно, о чем вы на самом деле спрашиваете, какой должна быть конечная цель.

Если я сделал неправильное предположение (я), не стесняйтесь поставить мне -1.

person nithins    schedule 08.12.2009

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

Вы можете использовать что-то вроде getchar(), чтобы заставить приложение ждать нажатия клавиши.

person GManNickG    schedule 08.12.2009
comment
Он по-прежнему закрывался с помощью getchar() в конце файла. В чем дело? - person user124384; 13.07.2015

Пусть консоль закроется.

Если вы запретите в программе закрытие консоли, это затруднит автоматизацию с вашей программой или сделает формат ввода программы странным.

Вместо этого в первую очередь исправьте все, что запускает программу, чтобы в первую очередь не закрывать окно терминала. Если это MS Visual Studio, попробуйте F5 (запустить без отладки). Если вам нужна отладка, поставьте метку в конце программы. В противном случае откройте командную строку/терминал и запустите программу самостоятельно.

person Thanatos    schedule 08.12.2009

1) Ваша IDE открывает консоль перед запуском программы.
2) Ваша программа завершается
3) IDE закрывает консоль

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

а) Понятия не имею, как это сделать.
б) прямо перед return 0;, используемым для завершения программы, добавить

printf("Press ENTER a few times to terminate the program");
fflush(stdout);
getchar(); getchar(); getchar(); getchar();
getchar(); getchar(); getchar(); getchar();
return 0;
person pmg    schedule 08.12.2009

Вы можете использовать getch() в конце вашей программы. Другой способ — отладить программу и поставить точку останова перед окончанием программы.

person Kevin    schedule 08.12.2009