解决MAC中vscode调试C++代码无法处理输入的问题

写在前面的话:很久没有使用C/C++进行编程了,这次在MAC电脑的vscode中对C/C++代码进行调试时,发现运行到scanf、cin等输入语句时无法输入,参考了网上一些教程,发现有些繁琐或是难以解决我的问题。因此以本文记录最终的解决方案,一来为了记录以便下次遇到时进行解决,二来希望同大家交流探讨。

一、问题描述

这里用一个简单的输入输出示例说明我遇到的问题。当我进行调试时,发现程序的输出是在调试控制台,并且在这里我无法进行输入。(也就是对应scanf的那条语句开始无法继续向下推进)。

请添加图片描述

因此,我需要寻求方法,解决调试过程中无法进行输入的问题。

二、解决方法

(有多种解决方法,这里选择我认为最易于进行的方法)

Step1:下载相关插件(这一步简单带过)

安装CodeLLDB的扩展插件。

在这里插入图片描述

Step2:生成可执行文件

这里既可以直接在终端中输入g++命令,也可以直接点击vscode右上角的运行按钮。

在这里插入图片描述

经过这一步,我们会发现当前目录下生成了可执行文件。此时,我们就可以进行调试了。
在这里插入图片描述
Step3:调试(修改launch.json文件)

fn+F5(建议这种方法不要选择右上角的调试按钮),然后选择LLDB调试器。

在这里插入图片描述

可以看到在当前目录下多了.vscode文件夹,并且自动创建了launch.json文件。(这个时候直接进行调试会报错/仍然无法处理输入问题)

在这里插入图片描述

这里我们需要修改两个地方:

1、使用集成终端来运行和调试程序:增加 “terminal”: “integrated”,

2、运行当前文件所在目录下的同名可执行文件:修改program属性为:“${workspaceFolder}/${fileBasenameNoExtension}”

如下图所示,为了方便复制,把这段configurations粘贴在这里:

"configurations": [
        {
    
    
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "terminal": "integrated",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]

在这里插入图片描述

至此,修改完成。此时我们再按fn+F5,发现调试可以处理我们的输入语句了。

在这里插入图片描述

三、解决每次都需要修改配置文件的方法

在上面的步骤中,已经能解决在当前项目下debug无法处理输入的问题了。但是如果换一个项目,依然要重新经历一次上面的配置修改,较为麻烦。因此考虑解决每次都需要重新修改配置文件的问题。(一种比较简便的方法是将配置文件保存成模板,新建项目后拷贝进去)这里介绍一种更方便的方法:在VSCode的全局用户设置中配置一个默认的launch.json文件。

使用快捷键command+,打开设置。点击settings.json,这个文件是用来存储VS Code的全局用户设置的。

在这里插入图片描述

找到名为"launch"的属性,它的值是一个对象,对象中包含了我们想要配置的launch.json文件的内容。

在这里插入图片描述

根据我们这次的内容修改为如下所示:

在这里插入图片描述

此后,我们即使新建一个项目,不需要重新配置调试也可以处理输入了。

个人记录:python是解释类型的语言,与之处理方式不同。经过一些处理,在本电脑下调试时直接按右上角的调试按钮选择python调试进行调试即可。

猜你喜欢

转载自blog.csdn.net/kikiLQQ/article/details/132888160