Visual Studio Code集成终端未显示文本

5
我是一名全新接触MacOS的用户,现在我正在尝试搭建编程环境,我的IDE选择是Visual Studio Code。当程序运行时,默认情况下会输出内容。但是,当要求其收集输入时,输出就会崩溃。我在网上找到了一个解决方案,即通过终端输出代码,但现在终端中什么也没有显示出来。
我将此帖在这里发布,而不是提交错误报告,因为我不确定问题是否出在我自己身上还是程序本身。以下是我尝试运行的简单代码:
#include <iostream>

int main()
{
    int i;
    std::cout << "Enter a number: ";
    std::cin >> i;
    std::cout << "\n" << i;
    return 0; 
}

当运行输出时,它将显示第一部分,然后在请求输入时崩溃。当通过终端运行时,终端仅显示:"cd"(目录位置)"&& g++ main.cpp -o main && "(目录位置)"main",没有其他信息。
以下是我的tasks.json和launch.json:
tasks.json:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "c++ test program",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g", "main.cpp"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

launch.json:

{
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(lldb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceRoot}/a.out",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceRoot}",
                "environment": [],
                "externalConsole": true,
                "MIMode": "lldb"
            }
        ]
    }

唯一更改的设置是“code-runner.runInTerminal”,该设置已设置为true。

你是否在终端中运行了 ./a.out 命令?因为你展示的是编译程序的命令,而不是运行它的命令。请在 VSCode 中编译代码。打开终端(内置或外部)并运行 ls 命令 - 看到 a.out 已经生成。然后运行 ./a.out 命令。 - Artemy Vysotsky
在终端中输入任何一个命令或两个命令时均没有任何反应。代码似乎已编译但未运行。 - HarpoN
投票关闭为“无法重现”。请查看wasmup回答帖子下的提问者评论。 - undefined
至于为什么这个问题有5个赞,我想这可能与macOS上C/C++扩展与控制台的当前限制有关,而且与其他平台不同的是,如果externalConsolefalse(默认情况下是这样),输出将会发送到调试控制台而不是集成终端(文档)。 - undefined
1个回答

1
当使用Code Runner时,这是正确的做法:
使用Code Runner,然后按Ctrl+,编辑设置,然后搜索code-runner.runInTerminal并将code-runner.runInTerminal设置为true,如下所示:
{
    "code-runner.runInTerminal": true
}

这对我来说很有效。
希望这可以帮到你。

在提问之前,我已经完成了这个任务。如果设置为false,则代码会一直运行,直到需要输入。如果设置为true,则代码根本不会运行。 - HarpoN
尝试更改 VSCode 集成终端,也许 这篇文章 会有所帮助:Mac OS X:更改集成终端的 shell - wasmup
2
没事了,我已经解决了。我在做其他事情时搞乱了我的路径,进而影响了我的终端。我通过删除 .bash_profile 文件来修复它。感谢你的帮助。 - HarpoN
@HarpoN,这个回答帖子真的对你有帮助吗?为什么你把它标记为已接受的答案呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接