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

新手上路,请多包涵

我正在使用 VSCodeMacOSX 中调试我的 CPP 程序。

我有2个程序。

程序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

然后在 调试菜单 中选择 开始调试 选项。通过在断点中前进,我可以看到 string a 变量的状态。

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

但是,对于 program2 ,当我越过 cin>>a; 的断点时, 变量调用堆栈 的内容会被清除。

以下是 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"
        }
    ]
}

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

原文由 ajaysinghnegi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 674
1 个回答

这里 所述

如果您在 launch.json 中启用 “externalConsole”:true ,那么您将获得一个可以输入的弹出控制台窗口。

原文由 ajaysinghnegi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题