C-实时删除时如何从VSCODE读取控制台输入



我正在尝试实时使用一个C程序,该程序使用VSCODE的C/C 扩展,还允许我使用SCANF((将直接输入写入控制台。但是,当我调试代码时,它将打开调试控制台,这不允许我输入任何输入。

我找到了两个线程,人们回答了这个问题:

https://github.com/omnisharp/omnisharp-vscode/issues/1053

调试控制台窗口无法接受console.readline((输入

两者都建议将启动中的"控制台"属性设置为"外部终端"或" IntegratedTerminal"。但是,我找不到该属性或为此创建它,因为它在我的文件中不存在。

我确实具有"外部估"属性,可以将其设置为True或false。但是这两个选项似乎都像以前一样打开了调试控制台。

启动。JSON文件:

 {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/mnt/c/Users/David/Documents/code/puc-rio/inf1010/lab8/teste.out",
            "args": [],
            "stopAtEntry": true,
            "cwd": "/mnt/c/Users/David/Documents/code/puc-rio/inf1010/lab8/",
            "environment": [],
            "externalConsole": true,
            "windows": {
                "MIMode": "gdb",
                "miDebuggerPath": "/usr/bin/gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            },
            "pipeTransport": {
                "pipeCwd": "",
                "pipeProgram": "c:\windows\sysnative\bash.exe",
                "pipeArgs": [
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "sourceFileMap": {
                "/mnt/c": "${env:systemdrive}/",
                "/usr": "C:\Users\David\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr"
            }
        }
    ]

当我尝试将某些内容写入调试控制台时会发生什么:

Unable to perform this action because the process is running.

我在看到您的帖子之前遇到了相同的混乱。在我的Windows环境中,我将" EnternalConsole"设置为真。之后,当调试开始时,我的程序将有一个CMD外壳(不是VSCODE提供的"调试控制台"(,其中可以键入STDIN。(https://i.stack.imgur.com/kkkljp.jpg(

最新更新