首页 > 编程语言 >VSCode配置C-C++环境

VSCode配置C-C++环境

时间:2022-12-04 20:49:08浏览次数:67  
标签:编码 iconv VSCode 配置 中文 C++ VScode json 文件夹

转载自:【教程】VScode中配置C语言/C++运行环境_哔哩哔哩_bilibili

下载编辑器VScode

下载编译器MinGW并解压

将MinGW添加至环境变量

  • 进入mingw64下的bin文件夹,复制当前路径,Win + i唤起系统设置,输入高级系统设置并进入,点击环境变量,选择path,编辑,新建,粘贴路径,按下三个确定

    img

配置VScode插件

  • 打开VScode安装插件 ChineseC/C++ ,等待安装完毕后重启VScode

    img
  • 切换C/C++插件至 1.8.4 版本(非必要,不过对于小白来说更方便,此版本运行即自动配置)

    img

    因最新版本不会自动生成launch.json文件,给后续优化带来不便,故退回旧版本。

运行代码

  • 新建文件夹,修改为英文名称并进入,右键 通过Code打开 若在安装时未勾选相关选项,可能没有这个选项,请自行在VScode内操作打开文件夹

  • 新建一个文件,英文命名且扩展名为 .c

  • 编写相关代码

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        printf("Hello World!\n");
        printf("你好世界!\n");
        system("pause");    // 防止运行后自动退出,需头文件stdlib.h
        return 0;
    }
    
  • VScode菜单栏,点击运行,启动调试,稍等程序运行,输出结果在下方终端,上方调试面板,点击最右边的 橙色方框 停止程序运行

img

调整和优化

请根据自己的需要进行优化

代码运行后 .vscode 文件夹会自动生成在你的源文件目录下

.vscode 文件夹下的 task.jsonlaunch.json 用来控制程序的运行和调试

  • 将程序运行在外部控制台【墙裂推荐】

    • 打开.vscode 文件夹下的 launch.json 文件,找到 "externalConsole": false,false 改为 true 并保存

      img

  • 解决中文乱码问题【墙裂推荐】| VSCode中解决终端的中文乱码问题 - 我等着你 - 博客园

    中文乱码是由于VSC的默认编码格式是UTF-8,那么编译后程序的字符串的保存方式仍然为UTF-8,而CMD的编码方式为GBK。GBK的编码中文和符号是双字节,字符和整型是单字节。utf-8的中文和符号是三字节,字符和整型是单字节,二者的中文字符并不兼容。为解决这个问题,我们需要将二者的编码方式设为相同编码。方法多种多样,最方便、副作用最小的是下面将要介绍的方法:

    先了解一下gcc编译选项:

    -finput-charset:输入字符集设置(需要和源文件编码一致),告诉编译器以什么样的编码形式读入源文件中的字符串。

    -fexec-charset:执行字符集设置(需要设置为当前运行环境支持的编码),告诉编译器在内存中以什么样的编码形式保存字符串。

    -fwide-exec-charset:宽字符执行编码(在windows下应设置为utf-16LE),告诉编译器在内存中以什么样的编码形式保存宽字符串。

    修改程序编码方式为GBK:

    • 打开.vscode 文件夹下的 task.json 文件,找到 "${fileDirname}\\${fileBasenameNoExtension}.exe" 在后面加上英文 逗号 然后回车到下一行,粘贴下面文本 "-fexec-charset=GBK" 并保存

      img

      编译时用"-fexec-charset=GBK"这个参数(目前的配置是有的),生成的程序的字符串就是GBK编码的,源文件编码格式不会受到影响,仍是UTF-8。

      注意:加入此参数需要依赖你下载的mingw内置iconv工具!!!

      iconv是一个计算机程序以及一套应用程序编程接口的名称。 作为应用程序的iconv采用命令行界面,允许将某种特定编码的文件转换为另一种编码。

      若缺少iconv工具使用了此参数,会出现如下报错

      no iconv implementation, cannot convert from utf-8 to gbk
      
  • 收纳生成的 exe 可执行文件【可选】

    • 打开.vscode 文件夹下的 task.json 文件,找到 "${fileDirname}\\${fileBasenameNoExtension}.exe"

    • 修改成 "${fileDirname}\\coin\\${fileBasenameNoExtension}.exe" 并保存,同理,launch.json 下也有相同的字段,需要你修改

    • 在源文件同目录下新建 coin 文件夹,程序运行后,可执行文件将会生成在里面(其中 coin 可修改成你喜欢的英文名字)

      这样 .c 文件一多起来的时候,就不会出现 .exe.c 相互穿插在目录中-

      img

​ 以上优化C++的项目同理,不再演示。

提示

  • 若源代码文件夹含有中文路径,将会无法编译程序。
  • 若你的Windows用户名使用了中文,可能无法运行。

标签:编码,iconv,VSCode,配置,中文,C++,VScode,json,文件夹
From: https://www.cnblogs.com/ncphoton/p/16950695.html

相关文章

  • VSCode外部终端中文乱码问题
    转载自:https://www.cnblogs.com/stu-jyj3621在处理这个问题之前,你首先得知道为什么会出现这个这个问题。你在使用VScode编辑代码时,代码页面中文正常,而终端输出那里中文......
  • Hexo-Butterfly主题配置
    主题安装稳定版【建议】在你的Hexo根目录里gitclone-bmasterhttps://github.com/jerryc127/hexo-theme-butterfly.gitthemes/butterfly测试版测试版可能存在......
  • Linux环境变量及其配置
    为什么要说这个呢?本人喜欢使用Linux开发(工作是个硬要求,有些时候不能使用Linux,比如我上一个工作。但是有些时候呢,工作环境比较开放,我可以选择我喜欢的系统进行工作:比如我现......
  • 思科设备HSRP配置命令
    Cisco(config-if)#standby1ip10.1.1.254 //配置HSRP虚拟地址Cisco(config-if)#standby1priority120 //配置HSRP优先级,默认为100,越大越优Cisco(config-if)#stan......
  • 思科华为设备VRRP配置命令对比
    Cisco(config-if)#vrrp1ip10.1.1.254[Huawei-GigabitEthernet0/0/0]vrrpvrid1virtual-ip10.1.1.1//创建VRRP备份组并给备份组配置虚拟IP地址Cisco(config-if)#vr......
  • 1.C++入门基础(上)
    C++关键字C++关键字全集(参考C++Primer):asmautobad_castbad_typeidboolbreakcasecatchcharclassconstconst_castcontinuedefaultdelete......
  • 3.C++和C的混合编译
    简介C++语言的创建初衷是"abetterC",但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++......
  • 2.C++入门基础(下)
    内联函数C++中函数的使用我们已经比较清楚了,与C语言中函数的使用大多相同,主要是增加了重载的特性,对C语言的函数的一些缺陷做了一些补充。那么对于一些比较简单却又经常使......
  • 7.C++拷贝构造函数
    拷贝构造函数我们经常会用一个变量去初始化一个同类型的变量,那么对于自定义的类型也应该有类似的操作,那么创建对象时如何使用一个已经存在的对象去创建另一个与之相同的对......
  • 6.C++构造函数
    类的6个默认成员函数如果我们写了一个类,这个类我们只写了成员变量没有定义成员函数,那么这个类中就没有函数了吗?并不是的,在我们定义类时即使我们没有写任何成员函数,编译器......