Visual Studio代码在调试时使用输入文本文件

ech*_*cho 5 c++ visual-studio-code

我试图按照这篇文章的指示

调试时Visual Studio代码重定向输入

但是当我将控制台配置添加到launch.json文件时

"console": "integratedTerminal"
Run Code Online (Sandbox Code Playgroud)

它抛出"不允许属性控制台".当我调试程序时,它仍然等待输入,并且永远不会达到断点,就像我开始在shell中一样

"./a.out 1 test1.txt"

"./a.out 1 <test1.txt"    
Run Code Online (Sandbox Code Playgroud)

完整配置

{
    "version": "0.2.0",
    "configurations": [

    {
        "name": "(lldb) Launch",
        "type": "cppdbg",
        "request": "launch",
        //"program": "${workspaceRoot}/a.out.dSYM/Contents/Resources/DWARF/a.out",
        "program": "${workspaceRoot}/a.out",
        "args": ["1", "<","test1.txt"],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}/",
        "environment": [],
        "externalConsole": true,
        "MIMode": "lldb",
        //"miDebuggerPath": "C:\\mingw\\bin\\gdb.exe",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ],
        "console": "integratedTerminal"
        //"preLaunchTask": //"build test1"
    }
]
Run Code Online (Sandbox Code Playgroud)

}

Mei*_*lin 10

我使用GDB代替lldb但仍然遇到同样的问题。当我以这种方式在“launch.json”文件中输入参数时,它等待输入:

"args": ["<", "test1.txt"],
Run Code Online (Sandbox Code Playgroud)

但当我用以下方式重写它时,它开始正常工作:

"args": ["<", "${workspaceFolder}/test1.txt"],
Run Code Online (Sandbox Code Playgroud)

我认为即使输入文件位于工作区文件夹中,也应该添加一个父文件夹,或者只使用完整路径。