精华内容
下载资源
问答
  • 现在是2019.7.21,由于这阵一直在忙,今天我用最新的VSCode(Version 1.36.1) 和最新的Cpp插件(version 0.24.0)按照本文的安装步骤从零开始试了一下,由于...也可以参考官方文档:https://code.visualstudio.c...

    2020年2月22日更新,又按照自己的帖子尝试了以下,感觉大的思路是没问题的啊,小改动用紫色的标记标注出来了,另外如评论区所说删去了部分旧版本的内容和图片,不知道为啥评论区的留言我都没收到邮件。。。

    现在是2019.7.21,由于这阵一直在忙,今天我用最新的VSCode() 和最新的Cpp插件(version 0.24.0)按照本文的安装步骤从零开始试了一下,由于vscode版本和cpp插件版本更新确实变化了很多,2019年7月21日更新的我会用这个颜色(粉色?)标示出来,供大家参考进行配置也可以参考官方文档:https://code.visualstudio.com/docs/cpp/config-mingw

    弄了半天,总算弄好了,结合网上的教程,整理分享一下~

    发现总有童鞋问相同的问题,开始我还以为是没有配置好,今天我自己按照我原来写的尝试了以下,确实出现了问题,可能是VScode或者cpp的插件版本问题,2018.12.29更新,我会用绿色的字体表示。

    另外要是本文的更新内容仍然不能解决您的问题,可以看看这篇文章,这篇文章是之后写的,比这篇有条理些,配置过程也简单些。要是始终有问题,欢迎评论区留言,我会抽时间尽我所能解答(非大神有好多解答不了。。。)

    总体流程:

    1. 下载安装vscode
    2. 安装cpptools插件
    3. 安装编译、调试环境
    4. 配置系统环境变量path
    5. 修改vscode调试配置文件
    6. 其他
    7. Linux版本配置(简要)

    1、下载安装vscode

    https://code.visualstudio.com/Download 
     

    2、安装cpptools插件 

    打开vscode,按ctrl+p打开快速命令框,输入以下命令后等待

    ext install cpptools

    vscode在短暂的联网查找后会列出插件列表,如图: 

    image

    这里写图片描述 
     

    点击箭头所指处的按钮安装插件,安装过程可能会有些慢耐心等待 
    安装完成后vscode会提示你重启vscode,此时重启即可

    更新:因为我装这个插件已经是几年之前了,不确定现在界面还是不是这样,但是意思不变,装完后点重新加载就行了

    3、安装编译、调试环境

    (若是电脑上原来装着codeblocks,Dev C++等可以跳过这步,【建议安装codeblocks使用其自带的编译器】

    直接跳到  【4、配置系统环境变量path】 这步即可

    目前windows下调试仅支持 Cygwin 和 MinGW。 
    这里使用的是MinGW. 
    下面是MinGW的安装配置过程: 
    http://mingw.org/ 
    进入官网点击右侧 Download Installer下载安装器 
    打开安装器点击install准备安装: 
    这里写图片描述

    选择一个安装目录,默认为C:\MinGW这里选择的是A:\MinGW 
    点击Continue开始安装,安装过程需联网,若安装时提示error则需翻墙安装 
    安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。

    这里写图片描述 
    打开MinGW安装管理器进行进一步配置

    这里写图片描述

    注意这里gdb必选,否则无法调试 
    这里写图片描述

    选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器 
    选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需翻墙更新,建议翻墙。

    更新:单独装MinGW ,我最早是这么搞的,要是发现不可以(无法下载或者很怀疑自己MinGW没安装好等),可以试试codeblocks或者Dev-cpp等等,这些IDE自带编译器,还是看这篇文章 里面有使用codeblocks自带的MinGW的细节,当然要是可以就继续。

    4、配置系统环境变量path

    然后配置系统环境变量path,这一步为必须 
    在 我的电脑 上右键 属性: 
    然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应 

    Windows7注意,要加入,不是覆盖!我第一次不小心把原来路径覆盖了。。。(因为win7不像win10那么明显是加入。。)
    这里写图片描述

    重启电脑(非常建议),避免出现奇奇怪怪的问题

    再次打开vscode,注意配置系统环境变量path后重启一下vscode 
    注意:vscode调试需要在打开的文件夹中进行(注意!是用VSCode打开文件夹!!单独打开一个单独的cpp是没有下面的几个配置文件出现的!!也就是说,这个cpp要在一个文件夹里!不像DevCpp和C-Free可以直接调试一个单独的cpp!!)

    5、修改vscode调试配置文件

    打开文件夹后,新建test.cpp(随便建,或者main.cpp)进行输入代码测试: 

    #include <iostream>
    using namespace std;
    
    int main()
    {
        cout << "hello" << endl;
        return 0;
    }


    新修改了截图(配色是:Dracula)

    如图示进入调试界面选择C++: 【该图已更新,老版本图已删除,反正debug就是按那个虫子的图标】

    更新:现在点击之后变成了这样的:VScode还会让你再选一个,都选第一个吧

    然后会在工作目录下的生成一个launch.json的启动配置文件: 
    这里写图片描述

    使用下面代码替换该文件:(只是在vsc自己产生的json文件加了一些行)

    launch.json中有很多属性可以设置, 通过智能提示查看有那些属性可以设置, 如果要查看属性的具体含义, 可以把鼠标悬停在属性上面, 会属性的使用说明.

    {  
        "version": "0.2.0",  
        "configurations": [  
            {  
                "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
                "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
                "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
                "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
                "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
                "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
                "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
                "environment": [],  
                "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
                "MIMode": "gdb",  
                "miDebuggerPath": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\gdb32.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
                "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
                "setupCommands": [  
                    {   
    		    "description": "Enable pretty-printing for gdb",  
                        "text": "-enable-pretty-printing",  
                        "ignoreFailures": true  
                    }  
                ]  
            }  
        ]  
    }

    更新:注意:如评论区所说,workspaceRoot已被弃用,现改为workspaceFolder,上面的代码我已经改好了

    更新:vscode默认的"externalConsole": false,,而我这里改为了true,改为true即在控制台内部运行,不显示黑框,但是要是不显示黑框似乎没法输入(cin或者scanf)了(没怎么试过,读者可以试试)

    注意miDebuggerPath要与MinGw的路径对应 ,我用的codeblocks的gdb,见上面的json文件。

    注意miDebuggerPath是\\,与直接粘贴过来的路径不一样,需要加一个”\”(冒号后面的两个反斜杠“\\”),或者使用一个“/”

    替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~ 
    替换后保存,按F5进行调试,此时会弹出:

    【注意】,上面的那个目前的cpp插件似乎没有了,若是直接按F5会出现下面这个图,不清楚评论区童鞋说的是不是这个?

    【旧版本图已删除】请点击第二个“配置任务”,然后出现这个:点就行了~【旧版本图已删除】之后出现:【旧版本图已删除】在这里随便选一个:(我选的others)【随便选,反正最后tasks.json文件要被覆盖】【下面的图是更新之前的图】【旧版本图已删除】

     

     

    点击第一个”配置任务“,然后会出现:我选的第三个,g++那个

    更新:现在变成这样的了:我选的第三个,g++那个

    然后用下面代码替换:【更新:原来的"version": "0.2.0"似乎会有下划线报错,那就按照vscode说的改为2.0.0好了,下面的是最新的复制即可。】

    【提供两个版本,目前似乎都可以,推荐使用第二个版本】

    第一个版本的tasks.json

    {
        "version": "2.0.0",
        "command": "g++",
        "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"],    // 编译命令参数
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceFolder}"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
    

    第二个版本的tasks.json

    更新:我发现使用vscode自己生成的`tasks.json`,似乎也可以成成功运行,我把VSCode自己生成的这个json文件也贴上来(稍加改动):这个json文件和上面那个都是可以使cpp正常运行的

    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558 
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "type": "shell",
                "label": "g++", //这里注意一下,见下文
                "command": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin\\g++.exe",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                ],
                "options": {
                    "cwd": "C:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin"
                },
                "problemMatcher": [
                    "$gcc"
                ]
            }
        ]
    }

    注意:“label”那一行,要和前面的`launch.json`中的"preLaunchTask": "g++"这里写的一样,因为前面`launch.json`中的"preLaunchTask"里我改为了g++,所以这里我也改为g++,vscode默认的是`g++.exe build active file`【`launch.json`("preLaunchTask": "g++.exe build active file")和`tasks.json`("label": "g++.exe build active file"),都是默认的这个,当然无论是什么,只要保持一致就行】

    上面那一段话的图示说明:

    保存一下,然后切换至test.cpp,再次按F5启动调试~

    然后会发现有一个黑框一闪而过,然后终端显示“终端将被任务重用,按任意键关闭”,说明大家的配置没问题啊评论区有这个问题的童鞋们!只是vscode不是自己在程序末尾停止而已啦,和IDE不一样。

    可以在最后加一个断点,或者getchar(),或者system("pause");  或者int pause;cin>>pause; 看个人喜好了,个人感觉最后在return 0;处打一个断点比较好。然后程序就会在最后停住了。

     下面这个是最后用getchar()的旧图,没删供参考

    这里写图片描述

    【更新:似乎下面的步骤配置c_cpp_properties.json不需要了,因为我按照上面的步骤来似乎没有在头文件有下划线和原来有的灯泡图标什么的,所以下面的开始到 “6、其他” 之前可以不用看(后面还有内容!),到这里基本配置完成】

    配置c_cpp_properties.json

    • 保存一下,然后切换至a.cpp,再次按F5启动调试。
    • 如果前面的配置都对的话,这个时候会进行编译,然后跳出黑框输出Hello World,之后窗口又迅速消失。
    • 可能大多数人已经习惯了VS/VC的便利,其实我们这只要在末尾加上一个cin输入即可。加上int pause;cin>>pause;后再按F5。
    • 但是这个貌似不够高大上,其实我们一般是使用system('pause');实现,换上后再次运行,这时候报错了。因为我们我们引用的库有问题,没有正确引用进来,注意这里不是VS/VC,需要我们自己配置路径。
    • 注意:之前在下载安装GNU哪里已经配置了相应的环境变量,但是VScode中有个配置文件,他是根据自己的配置文件来找的。
    • 在编辑器中,有小波浪的就是代码有问题,看下#include<iostream>,左边有个灯泡,点击后跳出配置文件,修改其中的Win32的"includePath"如下,和上文一样,根据自己的路径进行调整即可。经测试,下图中代码的注册部分仍是必要部分
    {
        "name": "Win32",
        "includePath": [
            "C:/Program Files/MinGW/include/*",
            "C:/Program Files/MinGW/lib/gcc/mingw32/5.3.0/include/*"
            "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/*",
            "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/mingw32/*",
            "C:/MinGW/lib/gcc/mingw32/5.3.0/include/c++/backward/*"
        ],
        "browse": {
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        }
    }

    image

    6、其他

    一劳永逸:因为VS需要为每一个文件夹做单独配置,所以建议把.vscode文件夹放到你常用的文件夹的顶层,这样就不用重复配置了。
    不用每个新cpp文件就要一套配置。这些配置在你配置好的文件夹内的所有子文件夹和文件都能使用。

     

    最后效果: 
    设置断点,变量监视,调用堆栈的查看: 
    设置断点,变量监视,调用堆栈的查看

    条件断点的使用: 
    条件断点的使用

    新更新:【红色的是很早很早前更新的,2018.12.29更新,会用绿色的字体表示】

    最后补一句:

    vscode似乎还仅仅支持英文文件名的调试,中文调试的话就会出现“找不到文件XXXXX.cpp”(大意,原文记不清了,因为距离这个问题我已经解决很长时间了,今天看到想补一下,别让新人踩坑了。。。),然后问是否要创建,不知道是BUG还是啥,这纠结了我N久,因为我有些cpp文件是中文命名的,我去Github上找相应的issue也没有找到我想要的这个问题解答,最后偶然间发现英文命名的文件调试时不会出现这个问题,才解决了!!真的很坑!!!新人注意!!!这里浪费了我很长很长时间!!

    【要是根据上述方法还没有配置成功,请看评论区是否有人提出了类似问题,还可以按照我在这篇文章之后一段时间写的一篇:这篇文章,那篇文章使用了codeblocks自带的MINGW,而且配置方法比这个简单一些(因为这个是最早写的),要是始终有问题,欢迎留言,我会抽时间尽我所能解答(非大神有好多解答不了。。。) 】

     

    Linux版本配置(简要)

    也是很早之前配置过Linux的,今天我偶然发现了有以前用Linux配置的文件,感觉步骤都和windows配置不多(似乎没有miDebuggerPath这一项),直接上文件了:

    【注意:不确定这个还能不能用,因为是很早之前的了,仅仅做参考】

    launch.json:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch",	// 配置名称,将会在启动配置的下拉菜单中显示
                "type": "cppdbg", 		// 配置类型,这里只能为cppdbg
                "request": "launch",	// 请求配置类型,可以为launch(启动)或attach(附加)
                "program": "${workspaceRoot}/${fileBasenameNoExtension}.o",// 将要进行调试的程序的路径
                "args": [],				// 程序调试时传递给程序的命令行参数,一般设为空即可
                "stopAtEntry": false, 	// 设为true时程序将暂停在程序入口处,一般设置为false
                "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
                "environment": [],
                "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
                "MIMode": "gdb",
                "preLaunchTask": "g++",	// 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }

    tasks.json:

    {
        "version": "0.1.0",
        "command": "g++",
        "args": ["-g","${file}","-o","${fileBasenameNoExtension}.o"], // 编译命令参数
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
    

     

    展开全文
  • 由于这学期(或者说这一年)一直在忙别的,也没什么闲心看博客了,近期发现自己的这篇文章:整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(Windows)竟然有了好多访问,也有不少童鞋问各种问题...

    写在前面的前面:这篇文章vscode和cpp插件版本有点老了,仅供大家参考,最新的和最详细的更新见我的另一篇文章:https://blog.csdn.net/bat67/article/details/76095813

    写在前面:

    • 由于这学期(或者说这一年)一直在忙别的,也没什么闲心看博客了,近期发现自己的这篇文章:整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(Windows)竟然有了好多访问,也有不少童鞋问各种问题,非常感谢大家的支持,本来是自己整理的没想到有这么多人看hhh,正好近期自己换了台笔记本,就照着自己写过的VScode的教程自己搭建了一遍,发现其实过程也是很简单的,原来的那篇文章,里面有些东西也是没什么必要的(有可能是VS code和相应的cpp插件更新的缘故吧),所以再写一个小白搭建版本。
    • 注意的是,主要步骤还是我上面的那篇博客写的那些,就是下面的方法更不易出错,比较稳妥和方便,适合小白(比如我)

    第一步:下载codeblocks最新版

    • 其实没什么必要,主要是要这个编译器,单独下载安装编译器(就像我的前面那篇文章写的)容易出现各种问题。不过感觉codeblocks还算不错啦,对于不写什么大型项目的菜鸡的我来说已经够用了,相比而言,“宇宙第一IDE visual studio”就有些臃肿,目前codeblocks这个版本是最新的,下载网址
      网页截图,目前17.12版本是最新的
    • 对于不知道自己电脑里是不是有编辑器的童鞋来说,就下载codeblocks-17.12mingw-setup.exe就ok,就是上边截图里的从上往下数第四个,从下往上数第三个。
    • 点进去下载安装就行了,因为我已经装好了,就不再演示一遍了,就放一张下载的截图吧
      下载界面
      codeblocks安装在win10截图
    • 装好后就有了codeblocks和mingw编译器了,可以打开codeblocks新建一个项目写个hello world玩一下,看是不是装好了,当然可以直接进行下面第二步
    • 补一句,当然下载 Dev-cpp也是可以的,道理都类似,用其中的编译器,不过听说这个软件已经停止维护了(听说),而且自己没怎么用过(补全功能等太差),我知道这个软件唯一的优点就是可以直接编译运行单个cpp/c文件,而不用像codeblocks或者VS那样建立一个工程。看个人喜好啦~

    第二步:配置环境变量

    • 打开你的codeblocks安装目录,我是默认安装的在C:\Program Files (x86)\CodeBlocks,里面的MinGW就是安装的编译器了,将里面的bin文件夹加入路径,我的就是C:\Program Files (x86)\CodeBlocks\MinGW\bin,将这个加入路径即可。
    • 路径加入方法:路径加入方法
    • 我这是找的我最早博客那张图,其实我加入的路径并不是在图片写的A盘,而是C:\Program Files (x86)\CodeBlocks\MinGW\bin,如下图:环境变量配置
    • 加入后,建议重启一下电脑

    第三步:下载安装VSCode(已经装好了请跳到第四步)

    • vscode请到官网下载最新版
      vscode官网
    • 点击Download for windows
      这是目前的最新版1.25.1
    • 自行选择位置安装,注意安装时,把里面的两项好像叫注册到资源管理器什么的(记不太清了),建议选上。这样选上后安装是右键就有Open with Code选项了
    • 更新:上面说的就是下面这两个选项在这里插入图片描述

    第四步:安装VSCode cpp相关的插件

    • 插件是这个cpp插件
    • 这样安装:安装过程 具体就是打开vscode,选择最左边的5个按钮的最下面一个拓展(或者按ctrl+shift+x )然后在搜索框内输入C++ 第一个就是,点击安装即可
    • 稍等一会就安装完毕

    第五步:配置.vscode文件

    • 在桌面或者哪个位置新建文件夹和里面新建一个cpp文件(强烈建议路径和文件名全是英文,避免出现一些奇奇怪怪的问题,原来的版本有中文是不行的,新版本我没有试过,小白不建议尝试),我是在桌面建了一个test文件夹,然后在里面建立了一个main.cpp的文件test文件夹和main.cpp文件
    • 右键点击桌面的文件夹,点击Open with Code,在这个文件夹里打开vscode,注意,是用VScode打开文件夹,打开一个单独的cpp是不行的!!也就是说,这个cpp要在一个文件夹里!不像Dev-Cpp和C-Free可以直接调试一个单独的cpp!!要是右键没有Open with Code这个选项,那就是前面我说的那个选项没有选上,可以考虑重新覆盖安装一遍,选上那两个选项,或者在cmd/powershell里打开文件夹,输入code .同样道理(注意有一个点最后)
    • 这时候显示的应该是下面这个图:用VScode打开test文件夹
    • 双击main.cpp随便写的什么,比如我写一个hello world。
    #include <iostream>
    int main()
    {
        std::cout<<"hello world";
        return 0;
    }
    
    • 写完后,点击右侧 左侧(感谢评论区指正)倒数第二个,带着红点的齿轮
    • 点击那个带着红点的齿轮,选择C++(GDB/LLDB)
      带着红点的齿轮选择C++ GDB/LLDB
    • 然后会在工作目录下的生成一个launch.json的启动配置文件: launch.json的启动配置文件
    • 将这个launch.json用下面的替换:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch",	// 配置名称,将会在启动配置的下拉菜单中显示
                "type": "cppdbg", 		// 配置类型,这里只能为cppdbg
                "request": "launch",	// 请求配置类型,可以为launch(启动)或attach(附加)
                "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
                "args": [],				// 程序调试时传递给程序的命令行参数,一般设为空即可
                "stopAtEntry": false, 	// 设为true时程序将暂停在程序入口处,一般设置为false
                "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
                "environment": [],
                "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
                "MIMode": "gdb",
                "miDebuggerPath": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gdb32.exe",// miDebugger的路径,注意这里要与MinGw的路径对应
                "preLaunchTask": "g++",	// 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }
    
    • 注意miDebuggerPath这一项要确保和你安装的路径一致。如果和我一样都是默认安装的那就可以不用改,原封不动复制即可。不过最好需要注意一下miDebuggerPath这一项中,你的安装路径最后到底是gdb32.exe还是gdb.exe。我的是gdb32.exe,视情况更改。
    • 注意miDebuggerPath是\\,与直接粘贴过来的路径不一样,需要加一个”\”(冒号后面的两个反斜杠“\\”)
    • 【注意在这时候不要点击F5运行,原来这篇文章里说的按F5只是为了生成tasks.json,由于版本变化(新版的在此时运行会出现could not find the task 'g++'),我建议直接在.vscode文件夹中新建tasks.json
    • 再在文件夹中新建tasks.json文件(注意有个s,谢评论区指正,下面的图片是一定正确的),然后里面粘贴用下面的内容
    {
        "version": "0.1.0",
        "command": "g++",
        "args": ["-g","${file}","-o","${fileBasenameNoExtension}.exe"], // 编译命令参数
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
    
    • 弄好后文件夹里应该是这样的:弄好后文件夹里应该是这样的
    • 弄到这里就基本完成了,关于前面两个文件的含义,请参照官方文档
    • 这里补一句,这个文章下面有一位朋友的问题:

    楼主我想把exe生成到代码所在的文件夹下 那个tasks和launch怎么设置 我直接改地址调试的时候会有1的报错 希望楼主能帮下忙 我不懂怎么配置

    回答:

    第五步:调试cpp文件

    • 因为vscode不像IDE(比如codeblocks,VS等)在调试的时候黑框下面有点击任意键返回,所以需要我们手动加一个断点,或者程序最后加一个getchar();,或者加system("pause");等(注意是双引号,感谢评论区指正,system(‘pause’);不行,因为有语法错误),切换至test.cpp,我在return 0;处加个断点,点击右侧 左侧倒数第二个按钮,然后点左侧面板的小绿色三角(或者安快捷键F5),既可以开始调试调试界面

    第六步:成功,撒花★,°:.☆( ̄▽ ̄)/$:.°★

    展开全文
  • C、C++、Java、Python之间的区别

    万次阅读 多人点赞 2019-04-09 15:49:53
    C、C++、Java、Python介绍 C++、Java和Python都是面向对象的编程语言。其中C++和Java都是强类型语言,而Python是一种弱类型语言。 1)python: 快速开发应用程序 python比较容易学习,语法很简单,融入了很多现代...

    C、C++、Java、Python介绍

    C++、Java和Python都是面向对象的编程语言。其中C++和Java都是强类型语言,而Python是一种弱类型语言。
    1)python: 快速开发应用程序
    python比较容易学习,语法很简单,融入了很多现代编程语言的特性。python的库非常丰富,可以迅速地开发程序,无论是网站还是小游戏都非常方便。不过,python的脚本的运行效率较低,不适合对运行效率要求较高的程序。
    Python是一种脚本语言。它更适合用来做算法。Python简单易学,对于新手来讲是编程入门的好选择。Python其实也是基于C++创造的,它们的区别主要体现在,C++效率高,编程难;Python效率低,编程简单。比如同样的事情,Python程序员可以很快的写出代码,但机器运行却可能需要成倍于C++的时间;反之,C++程序员编程实现的难度比较大,但在机器上的运行效率很高。因此,很多公司在核心的功能、需要大量运行的部分更倾向于选择C++,而在执行次数不多,但对写代码速度要求比较高的部分则更倾向于使用Python。
    **(1)用途:**爬虫,Web开发,视频游戏开发,桌面GUIs(即图形用户页面),软件开发,架构等。
    **(2)优势:**拥有强大的开源类库,开发效率高,作为Raspberry Pi等新型平台开发基础,易上手
    **(3)缺点:**运行速度低于编译型语言,在移动计算领域乏力
    2)java: 健壮的大型软件
    Java的语法比较规则,采用严格的面向对象编程方法,同时有很多大型的开发框架,比较适合企业级应用。Java的学习曲线较长,不仅要学习语言相关的特性,还要面向对象的软件构造方法,在此之后要学习一些框架的使用方法。

    (1)用途:**Android & IOS 应用开发,视频游戏开发,桌面GUIs(即图形用户页面),软件开发,架构等。

    (2)优势:**市场对JAVA开发者需求旺盛,Android开发的基石,java跨平台实现一处编译多处执行,拥有强大的类库,Web开发(主流语言)。

    **(3)缺点:**占用大量的内存,启动时间较长,不直接支持硬件级别的处理

    3)C++: 需求效率的软件
    C++更接近于底层,方便直接操作内存。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
    C++不仅是C和java特点的结合。实际上C++是多范式编程语言。它不仅支持传统的面向过程编程,也支持面向对象编程,最初C++发明的时候就叫做C with class (带类的C),随着时间推移,C++又接受了泛形编程的思想,像STL库就是一个例子。C++的语法风格不一而同,大部分人在写C++的时候还是当作带类的C来使用,其实C++可以写出像python一样现代的风格。C++运行效率较高,同时能够比较容易地建立大型软件,适合对效率要求高的软件,比如机器学习中的神经网络,大型游戏编程等等。C++的内容非常复杂,同时语言经过了几十年的演化,所以学习起来难度较大,开发效率较低。
    在C语言的基础上,C++增加下面的内容:
    (1)类型检查更加严格
    (2)增加了面向对象机制
    (3)增加了泛型编程的机制
    (4)增加了函数重载和运算符重载。
    (5)异常处理机制
    (6)标准模板库STL。

    C++的优点:
    (1)代码可读性好。
    (2)可重用性好。
    (3)可移植。
    (4)C++设计成无需复杂的程序设计环境
    (5)运行效率高,高效安全
    (6)语言简洁,编写风格自由。
    (7)提供了标准库stl
    (8)面向对象机制
    (9)很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++。
    C++的缺点:
    (1)相对java来说,没有垃圾回收机制,可能引起内存设漏;
    (2)内容较多较难,学起来相对困难;
    **4)C: 操作系统及驱动
    C是一种面向过程的语言。由于C++源于C,它良好的兼容了C功能,完全支持C,因此既可以面向对象、也可以面向过程。近几年又在此基础上发展出C#,C#使用起来更类似于Java。

    (1)用途:操作系统,软件开发,硬件等
    **(2)优势:**可移植性强,体型小巧,易镶入现代处理器,了解了C语言,相当于了解了编程语言的一切,支持硬件级别的处理
    **(3)缺点:**不具备运行时检查机制,不支持面向对象编程,上手较难
    4)C

    C语言的优点:
    1.面向过程的语言
    C语言是面向过程的语言,在这里用户创建过程或函数来执行他们的任务。面向过程的语言是很容易学,因为它遵循的算法来执行你的语句。要使用面向过程的语言开发程序,你需要画/编写算法,然后开始转换成程序或功能。
    2.拥有许多库
    C语言中提供了大量的函数其中包括系统生成的函数和用户定义的函数。 C编译器自带的头文件,其中包括可用于开发程序的许多基本功能列表。同时,程序员还可以创建功能,按他们的要求被称为用户生成/定义的函数。
    3.编译速度
    C编译器产生的机器代码非常快相比其他语言的编译器。 C编译器可以在两秒编译约1000行代码。 C编译器的另一个好处是,它还优化了代码更快的执行速度
    4.易学(语法是接近英语)
    C语言的语法是很容易理解的。它使用关键字就像if, else, goto, switch, goto, main等。这类关键词,我们都在我们的日常生活使用的是传达意义或得到一些决定。
    5.可移植
    C语言的设置是大约3-5 MB。所以,你可以随身携带在你的软盘驱动器或随身碟这种语言。它非常易于安装和操作,又其输出是可以在任何一台电脑,没有任何其他的框架/软件执行的exe文件。
    C是高度可移植的语言。这意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行而没有任何变化或做一个小的变化。
    6.C语言为许多其他目前已知的语言构建模块。
    C语言具有各种各样的数据类型和强大的操作符。由于这个原因,用C语言编写程序是高效,快速和易于理解。
    7.只有32 ANSI C关键字和它的长度依赖于它的的内置函数。
    有几个标准的函数可用于开发程序。
    8.C的另一个重要优势是它能够扩展自己。
    一个C程序基本上是那些由C库支持的功能集合,这让我们更容易对我们自己函数添加到C库中。
    由于大量功能的可用性,编程任务变得简单。
    9.C语言是一种结构化程序设计语言。
    这使得用户能够想到一个问题中的功能模块或块的条款。这些模块的集合可以编写一个完整的程序。这种模块化结构,使程序调试,测试和维护变得更加容易。

    C语言的缺点:
    1.面向对象编程功能(OOPs)
    面向对象编程的特点是C语言缺少的,你只能使用面向过程的语言来开发程序。C没有的OOPs概念,这就是为什么C ++被开发。
    2.运行时类型检查是不可用
    在C语言没有规定运行时类型检查,比如我传递浮点值,而接收参数为整数类型那么值将会被改变,它不会给任何类型的错误信息。
    3.命名空间功能
    C不提供的命名空间功能,让你是不能够在一个范围内再次使用相同的变量名。如果命名空间功能可用的话,那么你可以能够重复使用相同的变量名。
    4.构造函数和析构函数不可用:
    C不提供面向对象的特性,因此它不具有构造和析构功能。构造函数和析构函数用于构造对象和销毁对象。因此,在C语言中,你必须通过方法或者以其他方式来手动实现变量的析构和构造。

    C、C++、Java比较

    (1)指针:C++和C中都有指针的概念,C++还可以使用智能指针,boost库。指针可以理解为一个地址,可以由程序员使用指针直接拿到该地址的数据,但是由于指针在使用的过程中,如果没有处理好,容易出现空指针和野指针,带来一些麻烦,因此Java去掉了指针的功能,规避了指针使用中可能存在的混乱情况。
    (2)封装:Java在C++的基础上又做了更高级的封装,具有良好的平台间的可移植性。C++一次编写到处编译,而Java一次编译到处运行。Java中的功能C++都能够实现,只是相对来说在编程方面会比较复杂一些。
    (3)垃圾回收方面:C++需要程序员自己回收,对内存进行良好的管理,而Java则不需要程序员自己完成这个工作,有自己的垃圾回收机制。
    (4)实现不同:比如C++把声明和实现分别放在头文件和源文件中,而Java则不使用头文件。C++引用其他内容时需要include,而Java则用package和import。

    展开全文
  • C、C++、java的区别

    千次阅读 2019-09-15 18:33:34
    首先是C、C++的区别, C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。 C++,首要考虑的是...

    博主面试的时候被问到这三个编程语言的区别,之前没有做过系统性的整理,回答问题的思路比较散乱,今天整理一下,

    首先是C、C++的区别,

    C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

    C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

    1. 动态内存开辟:C malloc/free ,C++ new/delete
    2. 输入输出关键字:C scanf/printf,C++ cin/cout;
    3. C++ 将字符串定义为一个string类
    4. 结构体struct:C++中的结构体相当于一个Class默认为私有,C语言默认为public;
    5. C++支持函数的重载,C不支持(函数重载即函数名和返回值相同,但函数的参数不同)
    6. C++支持运算符的重载,由关键字operator和要重载的运算符构成。

    C++、java 的区别

    1. java语言不需要对内存进行的分配和回收,程序会自动处理,不需要考虑内存碎片问题。
    2. C++支持多重继承,它允许许多父类派生一个类,java不支持多重继承,但允许一个类继承多个接口
    3. java是完全的面向对象的编程语言,C++不是完全的面向对象语言的编程
    4. java不支持运算符的重载,运算符的重载是C++的一个突出特征。
    5. java不支持预处理,C/C++有预编译阶段(但java的import具有与C++预处理相似的功能)
    6. java不支持缺省函数的参数,C++支持
    7. C/C++不支持字符串变量,java可以使用 ‘+’对字符串进行连接;
    8. C/C++支持数据类型的隐式转换,java必须显式的进行强制类型转换

    好了,今天就先整理到这里,以后有新的发现再进行补充。

     

    展开全文
  • Java和C、C++比较

    千次阅读 2019-06-23 13:01:59
    1、全局变量 Java程序中,不能在所有类之外定义全局变量,只能通过...Java不支持C、C++中的Goto语句,而是通过异常处理语句try、catch、finally等来代替C、C++中Goto来处理遇到错误时跳转的情况,使程序更可读且更结...
  • 如何在Vscode上配置C、C++环境

    千次阅读 多人点赞 2020-07-15 09:36:57
    如何使用Vscode配置C、C++环境 从Visual C++、Dev C++移步VsCode代理编译、运行、Debug 需要说明,VS Code是一个插件丰富,交互良好的编辑器;而Visual C++、Dev C++是一个IDE(Integrated Development Environment...
  • Visual Studio Code 如何编写运行 C、C++ 程序?

    万次阅读 多人点赞 2019-04-17 11:35:12
    CC++需要分别建立不同的工作区,除非你懂得下面json文件的某些选项,则可以做到一个工作区使用不同的build task。 打开VSC, 选打开文件夹 ,不要选“添加工作区文件夹”,理由见上一句。点新建文件夹,名称为 ...
  • Linux用命令行编译C、C++

    千次阅读 2018-06-04 16:58:20
    linux上可用的C、C++编译器是GUN的C、C++编译器,可以选择通过官网安装,也可以直接通过终端获取。终端的命令行方式较为简单,直接键入gcc或g++命令,系统会告诉你没有安装,然后直接照着它提供的命令安装即可。其中...
  • Python调用C、C++

    千次阅读 2016-02-18 15:48:28
    Python调用C、C++库 sf2gis@163.com 2014年9月24日   1 目标:Python调用C/C++中的类或方法 ctypes是Python扩展库,自2.5以后开始加入Python。 Ctypes提供了C/C++与Python之间交互的映射关系,将库映射为一...
  • C、C++头文件命名约定

    千次阅读 2015-09-29 14:20:54
    头文件命名约定 头文件类型 约定 示例 ...C、C++程序可以使用 C++新式风格 没有扩展名 iostream C++程序可以使用,使用namespace std 转换后的C 加上前缀c,没有扩展名 cmath
  • 经常有朋友问我你为什么要研究Rust这个小众又难学的语言,以下是Rust、Java、C、C++一个简单算法的时间&空间结果对比及源码。(leetcode平台) 废话不多说,先上结果: 按执行速度最快排序是:Rust、Java、C++...
  • Matlab R2017b 编译C、C++程序的编译器配置

    千次阅读 多人点赞 2018-08-14 16:36:53
    Matlab跑代码时,有的代码含有Matlab、C或C++混合编程,需要在Matlab中配置C、C++编译器,我自己的电脑系统中装的是Matlab R2017b和Visual Studio 2015,以这个为例,在Matlab中配置VS2015编译器。 注意:一定要...
  • C、C++输入并计算(整数、浮点数)
  • Android Studio 添加 C、C++ 代码

    千次阅读 2018-03-01 15:02:50
    Android Studio 添加C、C++代码 原文 Android Studio 用于构建原生库的默认工具是CMake。但由于很多现有项目都使用构建工具包编译其原生代码,Android Studio 还支持 ndk-build。 Google 推荐创建新的原生库都...
  • windows下VS2017编译mongoDB c、c++API

    千次阅读 2019-01-31 17:06:19
    一、mongoDB c、c++API介绍 mongoDB有两个接口库:mongo-c-driver和mongo-cxx-driver   1.1、mongo-c-driver:c代码接口库 下载链接:https://github.com/mongodb/mongo-c-driver 最新版本:mongo-c-driver ...
  • Matlab编译C、C++程序的编译器配置

    千次阅读 2015-04-13 21:09:24
    在进行Matlab、C或C++混合编程中,需要在Matlab中配置C、C++编译器,我的系统中装的是Matlab2012a和 Visual Studio2010,以这个为例,在Matlab中配置VS2010编译器。  首先在Matlab窗口中输入mex -setup,如图 ...
  • C、C++、C#、Java、php、python语言的内在特性及区别:  C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来...
  • c、c++ 结构体的嵌套

    千次阅读 2014-08-05 19:00:38
    c、c++ 结构体的嵌套 /************************************************************************/ /* 嵌套结构体 * C++ **/ /*****************
  • C、C++中union用法总结

    千次阅读 2015-11-13 16:21:51
    C、C++中union用法总结 2014-05-11 分类:C++ / 基础知识 阅读(674) 评论(27)  开始的话 已经好长时间没有更新了,对不起自己,更对不起我亲爱的读者,同时也对不起自己开办的这个博客平台。忙,太忙...
  • C、C++、Java都属于静态类型语言。 动态类型,运行的时候才知道每个变量的类型,编程的时候无需显示指定类型,如JavaScript中的var、PHP中的$。JavaScript、Ruby、Python都属于动态类型语言。 静态类型还是动态类型...
  • 15本经典C、C++、MFC、VC++教程与开发资料 15本经典C、C++、MFC、VC++教程,都是pdf完整版的 C++ Primer第三版(中文pdf高清完美版,1043页) 点击下载 C++实例教程(pdf版)...
  • VSCode开发C、C++环境搭建系列(一)——基于Mingw-w64搭建 VSCode开发C、C++环境搭建系列(二)——GCC/G++编译器对头文件、静态库、动态库的搜索路径详解 详细关于MSVC的使用可以参考官方网站: https://d...
  • Linux下如何编译、运行C、C++程序?

    千次阅读 2014-11-07 16:09:28
    Linux 中最重要的软件开发工具是 GCC。...实际上,GCC 能够编译三种:C、C++ 和 Object C(C 语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。    #DE
  • C、C++与Java的产生背景

    千次阅读 2012-04-02 10:20:50
    最近,我在看林信良的《Java学习笔记》。...由于Java与C++都是面向对象的,而C++又是在C的基础之上发展起来的,因此本文同时介绍C、C++与Java这三种语言的产生背景及相关情况。 1. C语言出现的历史背景
  • java和c、c++中数组的区别

    千次阅读 2016-08-29 10:18:23
    c、c++中使用数组是很危险的,因为c和c++中的数组就是内存块。如果一个程序要访问其自身内存块之外的数组,或在数组初始化之前使用内存(程序中常见的错误),就会产生难以预料的后果。 java的主要目标之一...
  • C、C++获取文件大小(占用字节数)

    千次阅读 2016-07-04 16:24:02
    C、C++获取文件长度,即文件占用字节数。
  • C、C++、C# 或 Python 相比,Java 的速度如何?答案很大程度上依赖于你需要运行的应用种类。世上没有完美的性能测试,但计算机语言评测游戏(Computer Language Benchmarks Game)是个很好的测试方式:http...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,846
精华内容 45,138
关键字:

c、c++

c++ 订阅