Где мой вывод при отладке кода C в Visual Studio Code? - PullRequest
0 голосов
/ 28 мая 2020

У меня простая программа c, с печатью чего-то на экран. Когда я отлаживаю программу, я вижу КОНСОЛЬ ОТЛАДКИ, однако, как только я использую fgets, я не вижу никаких результатов. Где моя программа запускается при отладке с использованием VS Code?

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

#include <stdio.h>
#include <stdlib.h>

int main() {
  printf("Hello World!\n");
  printf("Enter your name\n");

  char name[100];
  // fgets(name, sizeof(name), stdin); // as soon as I uncomment this, no output is in the output console
  printf("You name %s", name);

  return 0;
}

мой запуск. json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(Windows) Launch",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}/app.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false
    }
  ]
}

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Одно решение может решить вашу проблему.

Как настроить tasks.json и launch.json из VSCode

Для этого вам не нужно выполнять какое-либо кодирование, просто следуйте шаги:

  1. Удалить tasks.json и launch.json, расположенные в .vscode папке
  2. Нажмите F5 (ярлык отладки) снова, сфокусировавшись на этом C программном файле, вы увидите что-то вроде:

Automatic launch configuration wizard

Выберите свой компилятор GCC (поскольку вы пытаетесь отладить программу C и убедиться, что компилятор установлен в вашей системе). Вам будет предложено выбрать конфигурацию (при условии, что выбран вариант: G CC), вы получите launch.json, автоматически созданное VSCode, как показано ниже:

Successful creation of launch.json

Примечание: Не забывайте о конфигурации preLaunchTask (расположенной в самом низу конфигурации).

Как только вы снова нажмете F5 (на этот раз для создания tasks.json), вы получите то, что показано ниже, просто выберите Настроить задачи :

Required error to configure tasks.json

Теперь вы будете перенаправлены в tasks.json, измените label на имя, которое вы выбрали в § 4 (помните, что name). Другими словами, запуск preLaunchTask и задача label должны совпадать. Процесс показан ниже:

Renaming the label for debugging

Теперь вы можете успешно выполнить отладку. Рабочий пример:

A successful example of debugging

0 голосов
/ 29 мая 2020

Просто добавьте externalConsole": true в конфигурацию при запуске. json.

Например:

запуск. json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(Windows) Launch",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": true,
      "preLaunchTask": "cl.exe build active file",
    }
  ]
}

задач. json

{ 
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "cl.exe build active file",
      "command": "cl.exe",
      "args": [
        "/Zi",
        "/EHsc",
        "/Fe:",
        "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "${file}"
      ],
      "problemMatcher": ["$msCompile"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
    }
  ]
}
...