Как запустить программу во всплывающем окне консоли, используя VS Code? - PullRequest
0 голосов
/ 12 октября 2019

В настоящее время моя программа на C ++ запускается встроенной в окно VS Code, прямо на нижней панели. Как я могу запустить его в отдельном окне консоли, как оно есть в VS?

Я попытался изменить параметр «Настройки / Терминал / Проводник» «Вид» с «Интегрированный» на «Внешний», но это не былохорошо.

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Вы можете создать конфигурацию запуска , которая запускает ваше приложение на собственном терминале / консоли вашей ОС.

Например, у меня есть очень простой тестовый файл:

#include <iostream>
int main (void)
{
    int num;
    std::cout << "Enter number: " << std::endl;
    std::cin >> num;
    std::cout << num << std::endl;
}

1-й, установите Расширение C / C ++ VS от Microsoft , чтобы добавить поддержку отладки файлов C ++. Полное руководство по настройке находится в Настройка VS Code отладка документы.

2-й, создайте задачу сборки. Откройте палитру команд, найдите Задачи: настройте задачи , затем выберите подходящий компилятор C ++ (например, g ++ в моем случае). Если вы делаете это впервые, VS Code собирается создать папку .vscode / tasks.json в вашей рабочей области со встроенной задачей по умолчанию. Сконфигурируйте его для создания своего приложения, например:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build-test",
            "type": "shell",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${workspaceFolder}/app/test.cpp",
                "-o",
                "${workspaceFolder}/app/test"
            ]
        }
    ],
}

3-й, создайте задачу запуска. Откройте панель «Отладка» (с правой боковой панели), щелкните раскрывающийся список, выберите Добавить конфигурацию , затем выберите C ++ . Опять же, если вы делаете это в первый раз, VS Code собирается создать файл .vscode / launch.json в вашей рабочей области с заданием запуска по умолчанию. Сконфигурируйте его для запуска своего приложения, например:

enter image description here

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "run-test",
            "type": "cppdbg",
            "request": "launch",
            "preLaunchTask": "build-test",
            "program": "${workspaceFolder}/app/test",
            "cwd": "${workspaceFolder}",
            "externalConsole": true,
            "args": [],
            "environment": [],
            "stopAtEntry": true,
            "MIMode": "lldb"
        }
    ]
}

Важными конфигами здесь являются "preLaunchTask": "..." и "externalConsole": true. preLaunchTask должен быть установлен на задачу сборки, установленную ранее. externalConsole, если установлено значение false, открывает его во встроенной консоли. Поскольку вы не хотите запускать его на встроенной консоли, установите для него значение true.

Теперь, когда вы захотите запустить свое приложение, просто перейдите на панель «Отладка»,затем запустите задачу запуска (то же имя, что и name, установленное в launch.json ). Обратите внимание, что в конфигурации launch.json я установил stopAtEntry на true, чтобы дать мне возможность увидеть окно внешней консоли и затем ввести информацию в приглашение. Вы можете удалить его, если он вам не нужен.

enter image description here

enter image description here

Если всеидет хорошо, он собирается запустить его, запустив внешнюю консоль.

Опять же, для получения дополнительной информации см. VS Code Настройка отладки C / C ++ docs.

0 голосов
/ 16 октября 2019

спасибо вам всем.

Я выяснил суть.

Если вы используете Code Runner для запуска вашей программы, то вы увидите, что ваша программа работает во встроенной консоли вто же самое окно с VSC. Но если вы нажмете F5 вместо Ctrl + Alt + N, вы увидите, что выскочило черное окно.

Еще раз спасибо за вашу помощь. Я надеюсь, что это может помочь кому-то, кто когда-нибудь столкнется с проблемой, как моя. LOL.

...