有观众反馈我的视频调试部分做的很草率,而且也有很多人表示云盘链接打不开(不知道为啥我能打开但是就是很多人就是打不开),所以这里我就详细地说明一下我的那个“模板”文件夹里的具体是怎么配置出来的
如果你没有观看这个视频,请务必先看完这个视频:

先介绍一下Visual Studio Code在调试C/C++程序的两个重要的文件
【launch.json】这个文件用于展示在运行和调试界面想要执行的内容,比如说在Java项目中这里写的是运行Java的方式,在Python中是运行Python的方式。虽然vs code可以识别语言,但是它并不知道主函数在哪里,需要怎么运行它,而launch.json就是这样的作用。
【task.json】这个文件就如同字面意思,就是执行的任务,这个文件对于大多数语言都是不需要的,因为C/C++语言有一个特殊性,就是它的调试要生成可执行文件*,而task.json里面的内容就是要执行命令来生成可执行文件**
*在macOS系统下一个可以执行的命令行程序没有后缀名,所以你会在每次运行程序的时候发现多出一个名字一样但是没有后缀名的文件
**这部分内容我说的不一定准确,但是从结果上来说是这样的
task.json文件还可以用于修改C语言标准,比如C11,详细你可以看这个文章:

综上所述,想要在vs code中调试C/C++程序一般需要这样流程
生成task.json文件和launch.json文件
通过launch.json文件链接到task.json,让启用调试前运行task文件的内容
通过launch.json运行程序
第二个简单科普一下编译器,编译器的作用就是将高级语言转换成机器语言(相信你在学习C/C++的时候肯定会在前面的课程中提到过),简单点说从代码转换成能运行程序的程序,在先前的视频中你可以看到通过命令安装command line tools,这就是在安装编译器的过程(包括C/C++语言的编译器)。下面是C/C++语言的编译器:
clang(C++的版本叫做clang++):苹果开发的编译器,还可以用于编译Objective-C
gcc(C++的版本叫做g++):适用范围更广,还可以用于编译Objective-C,Fortran,Go等语言
就运行结果来说,这两者没有什么区别。据说clang性能更好,但是对于各位写命令行而已的情况,可以理解为没有区别。
下面是正片
在vs code中,打开一个C/C++文件,然后按下command+shift+P,这叫命令面板
在这个面板里输入task,在下面的选项中选择【任务:配置任务】这个选项

下面vs code会根据你打开的文件判断需要创建什么样的任务,如果你已经看过了上面知识补充的内容,你肯定知道选择什么:
C文件:【clang 生成活动文件】或者【gcc 生成活动文件】,clang++和g++可以运行但是不推荐*
C++文件:【clang++ 生成活动文件】或者【g++ 生成活动文件】,不能选择clang或者gcc(可能都没有这个选项)
*如果你使用clang++或者g++编译器来运行调试C语言,运行时会有警告,不建议这么做
(我刚换了电脑,所以就不放图片了,各位看着选)
如果你没有看到以上任何一个选项,那就是你没有安装command line tools
选择完成之后vs code会在文件夹的根目录下创建一个叫做【.vscode】文件夹,里面有一个【task.json】的文件,这个文件会自动打开,你把它放一边就行了,也不要关闭它,大概长这样(你不需要细究里面的内容,如果与图片内容有点不一样也正常)

点击左侧栏的运行和调试按钮(我的图标被我修改过,各位看到的应该是一个三角号上面有一个虫子的图标),然后选择创建launch.json文件

下面可能会出现下面的情况之一(根据系统版本和你安装的其它扩展会出现不同情况)
选择调试器,如果出现这个让你选,你可以选择C或者C++,如果有多个C或者C++,随便选就行
啥也没提示直接创建并打开了launch.json文件
最终的结果是在根目录下【.vscode】文件夹下创建并打开了一个launch.json文件,这个文件应该和task.json在一起
注意,打开的launch.json文件内容应该是近乎空的,大概长这样:

如果你发现不是这样,那么大概率创建launch.json的时候选择其它的东西,你把与上图相比多余的东西删掉就行了,问题不大。
在launch.json界面的右下角你应该可以看到添加配置的按钮,点击它,会在光标位置提示你要创建什么(我这里就不放图了,Windows和Mac显示的内容不一样)
选择C/C++: (lldb)启动
接下来vs code会自动补上这样的内容:

我用Windows系统还原的效果:D
这里你需要修改添加下面的内容:
修改name后面的内容(可选)随便你改成什么,最后效果就是在运行和调试里显示的名称,不改也可以
program,这里修改为【${fileDirname}/${fileBasenameNoExtension}】,你只需要修改为蓝色的部分就可以,不要删除原有的双引号
externalConsole,改为true,这里没有双引号
最后添加一行,但是在此之前你需要回到task.json文件,找到task.json文件里label那后面的值复制一下,应该长这样【C/C++: clang++ 生成活动文件】(不要照着我的复制,这个内容根据你在前面创建的task可能有所不同!),先在MiMode那行末尾添加一个英文逗号,然后在最后一行这样写:"preLaunchTask": "这里是你在task.json文件label部分复制来的内容"(输入preLaunchTask会有提示,不推荐自己挨个字母手动输入,务必注意两边都有引号)比如说我这里是"preLaunchTask": "C/C++: clang++ 生成活动文件"
修改完成之后应该长这样:

同样的,不要照着我的复制,我的preLaunchTask内容和你的未必一样
完成之后你可以回到你的C/C++文件(非常重要,保证当前显示的代码是C/C++代码,并且有主函数)
后面的内容就和我的视频内容一样了,你可以按Fn+F5或者点击运行和调试的绿色按钮就行了

顺带一提,绿色三角按钮右边的名字就是你在launch.json中修改的name,默认显示的是(lldb)启动