在Visual Studio代码中使用C++进行调试时如何读取输入?

jucafojl  于 2023-01-10  发布在  其他
关注(0)|答案(8)|浏览(421)

我正在使用VSCode调试MacOSX中的CPP程序。
我有两个节目。

程序1

int main(){

    string a;
    a = "a";
    a += 'b';
    cout<<a<<endl;
    return 0;
}

方案2

int main(){

    string a;
    cin>>a;
    a += 'b'
    cout<<a;
    return 0;
}

program1中,我直接分配string a,当我调试VSCode中的程序时,首先在终端中编译它,使用:
g++ -g filename.cpp
然后选择Debugging菜单中的Starting Debugging选项。我可以通过向前移动断点来查看string a变量的状态。

VARIABLES部分显示不同变量的状态,CALL STACK显示堆栈帧。

但是,对于program2,当我越过cin>>a;的断点时,VARIABLESCALL STACK的内容被清除。
以下是launch.json文件的内容:

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

我如何获得用户输入并继续调试我的代码?

cygmwpex

cygmwpex1#

Here中所述
如果你在launch.json中启用了**"externalConsole":true**,那么你将得到一个弹出的控制台窗口,你可以在其中键入内容。

kuuvgm7e

kuuvgm7e2#

要使用输入进行调试,可以编辑arg部分,如下所示:

"program": "${workspaceFolder}/main",
"args": ["<", "input_file.in"]

上面的示例应与以下内容相同:第一个月

e4eetjau

e4eetjau3#

我希望这对任何来这里的人都有帮助:
通过(1)将“externalConsole”设置为true和(2)在Code-Runner Extension配置中选中(启用)“Run In Terminal”,您可以通过在外部控制台上键入输入来将输入插入到您的代码中,当您运行代码时,外部控制台会弹出。

dw1jzc5e

dw1jzc5e4#

简单地说:
step1.点击调试器窗口的小齿轮图标。
步骤2.使此[“外部控制台”:false,]在launch.json文件中。
step3.然后重新启动调试器。

bpzcxfmw

bpzcxfmw5#

1.安装延伸件CodeLLDB
1.添加新配置CodeLLDB: Launch

1.将program属性设置为"program": "${workspaceFolder}/${fileBasenameNoExtension}"
1.(可选)重建代码
1.在VS调试选项卡中选择创建的Launch配置。然后启动它!

利润!

oewdyzsn

oewdyzsn6#

我也遇到了同样的问题,我的解决方案是用mingw64替换cygwin的gdb和g ++。

jdzmm42g

jdzmm42g7#

在我的情况下,这是一个两步的过程。
1.启用外部控制台:如其他答复所述,确实如此。
1.让VS代码控制终端。

3bygqnnd

3bygqnnd8#

如果您正在调试的代码需要用户输入,请将外部控制台设置为true。输入输入后,避免单击“x”关闭外部控制台。相反,单击“-”以最小化窗口。然后继续按f10或f11继续调试。我希望这对您有所帮助。

相关问题