Внутренняя консоль отладки не принимает мой ввод - PullRequest
0 голосов
/ 27 марта 2019

Когда я ввожу свои данные во внутреннюю консоль отладки (например, номер), я получаю сообщение «Невозможно выполнить это действие, потому что процесс запущен». (нет проблем с выводом), но когда я переключаю внешнюю консоль (консоль Windows) в файле launch.json, я не сталкиваюсь с какими-либо проблемами.

Я прочитал документальный фильм об отладке в VSC (например, code.visualstudio.com/Docs/editor/debugging), но в нем ничего нет. Разве я не должен вводить ввод там? Кроме того, мой вывод отображается только в консоли отладки, это тоже нормально? Я не могу ввести свой ввод через терминал либо. Даже если я начну без отладки, ситуация не изменится. Если я использую расширение «C / C ++ Compile Run», то создается нормальный внутренний терминал, и я могу взаимодействовать с ним.

Моя конфигурация launch.json

        "name": "g++.exe build and debug active file",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "internalConsoleOptions": "openOnSessionStart",
        "externalConsole": false,
        "MIMode": "gdb",
        "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ],
        "preLaunchTask": "g++.exe build active file"

Мои задачи.json:

  "type": "shell",
  "label": "g++.exe build active file",
  "command": "C:\\MinGW\\bin\\g++.exe",
  "args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}\\${fileBasenameNoExtension}.exe"
  ],
  "options": {
    "cwd": "C:\\MinGW\\bin"
  },
  "problemMatcher": [
    "$gcc"
  ],
  "group": {
    "kind": "build",
    "isDefault": true
  }

c_cpp_properties.json:

        "name": "Win32",
        "includePath": [
            "${workspaceFolder}/**"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "windowsSdkVersion": "10.0.17763.0",
        "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "msvc-x64"

1 Ответ

0 голосов
/ 29 июня 2019

Насколько я знаю, консоль отладки не поддерживает чтение ввода с консоли в программе на С ++.Единственное возможное решение - использовать внешний терминал, установив атрибут true в externalConsole .

ОфициальныйВ документе говорится о настройке console атрибута как integratedTerminal для программирования Node.js.Но нет такого положения для программы на С ++.

Существует аналогичный открытый выпуск для программирования go.Может быть, команда vscode будет иметь это в своем бэклоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...