0


解决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调试进行调试即可。

标签: macos vscode c++

本文转载自: https://blog.csdn.net/kikiLQQ/article/details/132888160
版权归原作者 kikiLQQ 所有, 如有侵权,请联系我们删除。

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

还没有评论