Программа VS Code C ++ не отображает вывод при отладке - PullRequest
0 голосов
/ 14 мая 2019

Возьмите простой файл C ++, например:

#include <iostream>
using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cout << "Hello World";
    return 0;
}

Установить точку останова на return 0. Настройте эту конфигурацию запуска:

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

Перейдите на вкладку отладки в левой боковой панели и нажмите зеленую кнопку запуска.

Ожидаемая ситуация: Я могу видеть Hello World где-то.
Фактическая ситуация: Я могу не см. Hello World где угодно.

Вкладки справа:

  • Вывод : пусто
  • Проблемы : пусто
  • Клемма 1 : cppdbg: temp пусто
  • Терминал 2 : Task - g++ build active file содержимое
  • Отладочная консоль : содержимое

Как это исправить?


Настройка : VS Code 1.33.1 (Официальная сборка Snap) в Ubuntu 18.04

1 Ответ

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

В соответствии с полезными комментариями выше, я также процитирую Алан :

Это не поведение кодов, ваша операционная система буферизует вывод перед печатью на консоль, это совершенно нормально и универсально для всех платформ

Таким образом, мне нужно было добавить дополнительные std::endl к моему std::cout утверждению.

...