Как в visual studio оставить консоль

Обновлено: 06.07.2024

Это, вероятно, вопрос о запуске, поскольку, несомненно, ответ ослепительно очевиден.

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

Когда я запускаю приложение, появляется окно консоли, появляется выход программы, а затем окно закрывается по мере выхода приложения.

Есть ли способ открыть его, пока я не проверил вывод или не просмотрел результаты после закрытия окна?

ОТВЕТЫ

Ответ 1

Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает вам нажать return, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова в последней строке.

Ответ 2

Щелкните правой кнопкой мыши на вашем проекте

Свойства> Свойства конфигурации> Линкер> Система

Выберите Console (/SUBSYSTEM: CONSOLE) в опции SubSystem или вы можете просто ввести Console в текстовое поле!

Теперь попробуйте. это должно работать

Ответ 3

Вот способ для C/С++:

Ответ 4

Откройте меню отладки- > Нажмите Начать без использования

Ответ 5

Он будет ждать <ENTER> .

Ответ 6

попробуйте вызвать getchar() прямо перед возвратом main() .

Ответ 7

(/SUBSYSTEM: CONSOLE) не работал для моего vs2013 (у меня его уже было).

"run without debugging" не является параметром, так как я не хочу переключаться между отладкой и просмотром вывода.

Решение, используемое в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Насколько я помню, в vs2008 нам не нужны такие трюки.

Ответ 8

Здесь решение, что (1) не требует каких-либо изменений кода или точек останова, и (2) приостанавливается после завершения программы, чтобы вы могли видеть все, что было напечатано. Он остановится после F5 или Ctrl + F5. Основной недостаток заключается в том, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.

Создайте командный файл. Я назвал мой runthenpause.bat со следующим содержимым:

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

Откройте свойства проекта | Конфигурационные свойства | Отладка.

Теперь, когда вы запустите, runthenpause.bat запустит ваше приложение, и после того, как ваше приложение завершится, вы остановитесь, чтобы увидеть вывод консоли.

Я опубликую обновление, если выясню, как загрузить символы. Я пробовал /Z7 за этот, но безуспешно.

Ответ 9

просто введите свою последнюю строку кода:

Ответ 10

Начиная с Visual Studio 2017 (15.9.4) есть опция:

Автоматически закрывать консоль, когда отладка прекращается:

Сообщает Visual Studio закрыть консоль в конце сеанса отладки.

Ответ 11

Вы можете запустить исполняемый файл из командной строки. Таким образом, вы можете увидеть весь вывод. Или вы можете сделать что-то вроде этого:

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

Ответ 12

добавить "| pause" в поле аргументов команды в разделе отладки в свойствах проекта.

Ответ 13

Просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не контролирует его).

Если это не сработает, добавьте следующее в конец вашего кода:

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

Если вы хотите сделать это в нескольких местах, поместите вышеуказанный код в метод (например, private void Pause() ) и вызовите Pause() всякий раз, когда программа достигает возможного конца.

Ответ 14

Несколько лучшее решение:

в начале вашей программы.

  • может использовать std:: exit()
  • может иметь несколько возвратов из основного
  • вы можете запустить свою программу под отладчиком
  • Независимый IDE (+ независимый от ОС, если вы используете трюк cin.sync(); cin.ignore(); вместо system("pause"); )
  • необходимо изменить код
  • не будет останавливаться на std:: terminate()
  • все равно произойдет в вашей программе вне сеанса IDE/debugger; вы можете предотвратить это под Windows, используя:

Ответ 15

Обязательно сделайте любой из них в конце функции main() и перед оператором return .

Ответ 16

В моем случае я испытал это, когда создал проект Empty C++ в версии VS 2017 для сообщества. Вам нужно будет установить для подсистемы значение "Консоль (/SUBSYSTEM: CONSOLE)" в разделе "Свойства конфигурации".

  1. Зайдите в "Просмотр", затем выберите "Менеджер недвижимости"
  2. Щелкните правой кнопкой мыши на проекте/решении и выберите "Свойство". Откроется страница свойств теста.
  3. Перейдите к компоновщику, затем выберите "Система"
  4. Нажмите "Подсистема" и появится выпадающий
  5. Выберите "Консоль (/SUBSYSTEM: CONSOLE)"
  6. Применить и сохранить
  7. В следующий раз, когда вы запустите свой код с помощью "CTRL +F5", вы должны увидеть результат.

Ответ 17

Вы также можете использовать эту опцию

Ответ 18

Ответ 19

Visual Studio 2015, импорт. Потому что я ненавижу когда примеры кода не дают необходимых импортов.

в общем ребята в чем суть дела, я решил пройти книгу Б. Страуструп "Программирование. Принципы и практика использования С++", и нелепая ситуация 2 задача и все.Вот скрины.

Пробывал и так и этак, в общем ничего.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Скорочтение (как задержать консольное окно на определённое время?)
как задержать консульное окно на определёное время?

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

Как очистить окно консоли?
Здравствуйте! Есть к примеру программа - калькулятор а консоли! Она работает так, ввели число.

Как убрать окно консоли
Всем привет! Посмотрите как можно убрать черное окно чтобы осталась только окно диалога.

Не читайте Страуструпа на этой стадии. Почитайте Шилда с++.

Под винду добавляют
system("pause");

Не занимайтесь ерундой.

Если вы пользуетесь Visual Studio и запускаете свою программу в пошаговом отладчике (Start Debugging - F5), то эта проблема вас вообще не должна интересовать.

Если же вы запускаете программу на полноценное выполнение (Start Without Debugging - Ctrl+F5), то консольное окно и так не должно закрываться при завершении программы. Если же оно у вас таки закрывается, то идите в настройки проекта 'Linker -> System' и исправьте настройку 'SubSystem' на 'Console'. Окно перестанет закрываться само по себе, а будет просить вас нажать клавишу, как это делает системная команда "pause".

Т.е. не надо заниматься этой фигней с 'system("pause");' или <conio.h>. Все, что вам нужно, уже встроено прямо в Visual Studio.

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

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

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Создание проекта

Откройте Visual Studio 2017.

В верхней строке меню последовательно выберите Файл > Создать > Проект.

Снимок экрана: шаблон проекта "Консольное приложение (.NET Core)" в диалоговом окне "Новый проект" в интегрированной среде разработки Visual Studio

Снимок экрана: ссылка "Открыть Visual Studio Installer" в диалоговом окне "Новый проект"

Снимок экрана: рабочая нагрузка "Кросс-платформенная разработка .NET Core" в Visual Studio Installer

Запустите Visual Studio.

На начальном экране выберите Создать проект.

Снимок экрана: окно "Создание проекта"

Снимок экрана: рабочая нагрузка "Кросс-платформенная разработка .NET Core" в Visual Studio Installer

Затем нажмите кнопку Изменить в Visual Studio Installer. Вам может быть предложено сохранить результаты работы; в таком случае сделайте это. Выберите Продолжить, чтобы установить рабочую нагрузку. После этого вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем нажмите Создать.

Снимок экрана: в окне "Настроить новый проект" назовите проект "HelloWorld"

Новый проект открывается в Visual Studio.

Запустите Visual Studio.

На начальном экране выберите Создать проект.

Снимок экрана: окно "Создание проекта" в Visual Studio 2022

Применив фильтры языка и платформы, выберите шаблон Консольное приложение и нажмите кнопку Далее.

В установщике Visual Studio:

Снимок экрана: рабочая нагрузка "Кросс-платформенная разработка .NET Core" в Visual Studio Installer

Выберите Продолжить, чтобы установить рабочую нагрузку.

Вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Теперь щелкните Далее.

Снимок экрана: окно "Настройка нового проекта" в Visual Studio 2022, для проект задано имя HelloWorld

Снимок экрана: окно "Дополнительные сведения" в Visual Studio 2022, в качестве платформы выбран вариант ".NET 6.0 (предварительная версия)"

Новый проект открывается в Visual Studio.

Создание приложения

Visual Studio включает код по умолчанию "Hello World" в проект.

Visual Studio включает код по умолчанию "Hello World" в проект. Чтобы просмотреть его в редакторе, выберите файл кода Program.cs в окне Обозревателя решений, которое обычно находится в правой части Visual Studio.

(Для этого Visual Studio вызывает метод WriteLine для отображения строкового литерала "Hello World!" в окне консоли.)

Снимок экрана: код "Hello World" по умолчанию на основе шаблона

Если нажать клавишу F5, программа запустится в режиме отладки. Но окно консоли отображается на короткое время, перед тем как закрыться.

(Это происходит потому, что метод Main завершается после выполнения его единственного оператора, после чего завершается работа приложения.)

Один оператор кода вызывает метод WriteLine для отображения строкового литерала "Hello World!" в окне консоли.

Снимок экрана: код "Hello World" по умолчанию на основе шаблона

Добавление кода

Добавим код для приостановки работы приложения, чтобы окно консоли не закрывалось, пока вы не нажмете клавишу ВВОД.

Добавьте следующий код сразу после вызова метода WriteLine:

Убедитесь, что он выглядит в редакторе кода следующим образом:

Снимок экрана: добавленный код для приостановки приложения Hello World

Добавим код для приостановки работы приложения, чтобы метод main не завершал работу, пока вы не нажмете клавишу ВВОД.

Добавьте следующий код сразу после вызова метода WriteLine:

Убедитесь, что он выглядит в редакторе кода следующим образом:

Снимок экрана: добавленный код для приостановки приложения Hello World

Выполнение приложения

Просмотрите результат в окне консоли.

Просмотрите результат в окне консоли.

Закрытие приложения

Нажмите клавишу ВВОД, чтобы закрыть окно консоли.

Закройте область вывода в Visual Studio.

Снимок экрана: окно вывода в Visual Studio

Закройте Visual Studio.

Нажмите клавишу ВВОД, чтобы завершить метод main , а затем еще раз нажмите клавишу ВВОД, чтобы закрыть окно консоли.

Закройте область вывода в Visual Studio.

Снимок экрана: окно вывода в Visual Studio 2022

Закройте Visual Studio.

Дальнейшие действия

Предотвращение закрытия окна консоли в приложении консоли Visual Studio C / C ++

Как предотвратить закрытие окна консоли в Visual Studio C / C ++

Это, вероятно, неудобный вопрос, поскольку, без сомнения, ответ ослепляюще очевиден.

Когда я запускаю свое приложение, появляется окно консоли, появляется вывод программы, а затем окно закрывается при выходе из приложения.

Есть ли способ оставить его открытым, пока я не проверю вывод, или просмотреть результаты после закрытия окна?

  • Monodevelop делает то, что вы ожидаете.
  • Согласовано. Я думаю, что лучший ответ для VS 2017 и новее - от chronoxor.

Начиная с Visual Studio 2017 (15.9.4) есть возможность:

Соответствующий фрагмент из документации Visual Studio:

Автоматически закрывать консоль при остановке отладки:

Сообщает Visual Studio закрыть консоль в конце сеанса отладки.

  • 4 Я только что протестировал это в VS2017 и VS2019. Это требует как настройки подсистемы на КОНСОЛЬ, так и выключения этой опции. При наличии одного или другого окно автоматически закрывается.
  • Это по-прежнему закрывает для меня окно, если я запускаю несколько проектов из одного решения.
  • Я чувствую, что это правильный ответ для VS 2017 и последующих лет. Жаль, что этого нет в старых версиях.

Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает вам нажать клавишу возврата, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова на последней строке.

Щелкните правой кнопкой мыши свой проект

Свойства> Свойства конфигурации> Компоновщик> Система

Выбрать Консоль (/ SUBSYSTEM: CONSOLE) в SubSystem вариант или вы можете просто ввести Приставка в текстовом поле!

Теперь попробуйте . он должен работать

  • Это сработало для моего VS2013 Express, но принятый ответ - нет. Очень странно, поскольку принятый ответ работал для всех версий Visual Studio, которые я использовал в прошлом.
  • 9 @MichaelCalvin Вы должны запустить с Ctrl + F5 после установки этого, это кикер.
  • как заявил @JonathanMee, вы все еще использовали Ctrl + F5. Это уже было установлено в моей визуальной студии 2015, поэтому первый ответ оказался наиболее полезным.
  • Это действительно так. Знакомый CTRL+F5 не удастся, если вы, скажем, добавите новый файл C ++ в пустой проект.
  • У меня работал над Visual Studio Express 2015. Спасибо.

Вот способ для C / C ++:

  • Этот метод не работает в Visual C ++ (если вы не добавили заголовок?)
  • 2 @wmac Вы должны включить заголовок windows.h
  • 1 Я не включил ни одну библиотеку или пространство имен, но оно работает правильно, большое спасибо.
  • 1 Не делай этого, пожалуйста. В pause команда специфична для Windows.
  • У меня работал над Visual Studio 2013 Express. :)

Перейти к меню отладки->Нажмите StartWithoutDebugging

  • 10 +1 - Либо это, либо Console.ReadKey() просто ждать любой клавиши.
  • Странно, но в моем приложении это не действует. Он по-прежнему закрывается, не дожидаясь ввода данных пользователем.
  • 4 Тогда ваш код, скорее всего, завершится до того, как достигнет этой точки.
  • Не лучшее решение, если вы запускаете тесты, так как они заставят ваши тесты зависать и никогда не завершаться.

Попробуйте позвонить getchar() прямо перед main() возвращается.

  • Не работает в VS 2008 для простого консольного приложения Hello Name. cout, cin, cout, getchar (), консоль все еще закрывается. В чем дело?
  • 1 Попробуйте поместить getchar () дважды, если у вас есть cout непосредственно перед getchar (). getchar () ожидает char, а вы уже даете его cout . Сообщите мне, поможет ли это :)

(/ SUBSYSTEM: CONSOLE) не работал для моего vs2013 (у меня он уже был).

"запускать без отладки" не вариант, так как я не хочу переключаться между отладкой и просмотром вывода.

Решение, используемое в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Насколько я помню, в vs2008 нам такие ухищрения не понадобились.

Вот решение, которое (1) не требует изменений кода или точек останова и (2) приостанавливает работу после завершения программы чтобы вы могли видеть все это было напечатано. Он будет приостановлен после F5 или Ctrl + F5. Основным недостатком является то, что в VS2013 Express (как было проверено) он не загружает символы, поэтому отладка очень ограничена.

Создайте командный файл. Я позвонил своему runthenpause.bat , со следующим содержанием:

Первая строка будет запускать любую предоставленную вами команду и до восьми аргументов. Вторая строка . пауза.

Откройте свойства проекта | Свойства конфигурации | Отладка.

Теперь, когда ты бежишь, runthenpause.bat запустит ваше приложение и после его завершения остановится, чтобы вы могли увидеть вывод консоли.

Я опубликую обновление, если выясню, как загрузить символы. Я старался /Z7 за это, но безуспешно.

  • 1 Это все еще не поддерживает отладку, но, по крайней мере, решает проблему отсутствия вывода, например. VLD, в отличие от все другие ответы.

просто введите в качестве последней строки кода:

Вы можете запустить исполняемый файл из командной строки. Таким образом, вы могли видеть весь результат. Или вы можете сделать что-то вроде этого:

и таким образом окно не закроется, пока вы не введете данные для a переменная.

  • 4 Это было бы отличным решением, если бы оно работало. pause похоже, работает только в пакетных файлах, и хотя он получает ввод от вашей программы на STDIN, он не распечатывает этот текст повторно. Я пробовал заменить | с участием && , но это не повлияло - предположительно, потому что он не выполняется с помощью командной оболочки (cmd.exe).

Просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не контролирует его).

Если это не сработает, добавьте в конец кода следующее:

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

Если вы хотите сделать это в нескольких местах, поместите приведенный выше код в метод (например, private void Pause() ) и звоните Pause() всякий раз, когда программа достигает возможного конца.

Несколько лучшее решение:

в начале вашей программы.

  • можно использовать std :: exit ()
  • может иметь несколько возвратов из основного
  • вы можете запустить свою программу под отладчиком
  • Независимость от IDE (+ независимость от ОС, если вы используете cin.sync(); cin.ignore(); трюк вместо system('pause'); )
  • нужно изменить код
  • не будет останавливаться на std :: terminate ()
  • все равно будет происходить в вашей программе вне сеанса IDE / отладчика; вы можете предотвратить это в Windows, используя:
  • Очень плохой совет.
  • Можете объяснить почему?
  • В случае, когда отладка не ведется, она не делает ничего полезного, потому что в этом случае нет проблемы, которую нужно решать. В VS просто запустите программу с помощью Ctrl + F5 и все, так что в VS нет проблем, а в интерпретаторе команд нет проблем, короче говоря, нет проблем. А в случае, когда кто-то отлаживает и хочет, чтобы код остановки остановился, это не более удобное решение, чем точка останова, и вмешивается в ситуации, когда остановка не нужна.

Обязательно сделайте любой из них в конце main() функция и до return заявление.

Вы также можете использовать эту опцию

Visual Studio 2015, с участием импорт. Потому что я ненавижу, когда примеры кода не дают необходимого импорта.

Перейдите в Настройки> Отладка> Снять галочку рядом.


В настоящее время нет возможности сделать это с приложениями, работающими в WSL2. Однако есть два обходных пути:

В окне отладки сохраняется содержимое закрытого окна оболочки WSL.

Окно остается открытым, если ваше приложение возвращает ненулевой код возврата, поэтому, например, вы можете вернуть ненулевой код в отладочных сборках.

Читайте также: