使用VS Code进行C语言学习

来源:互联网 发布:php 获取useragent 编辑:程序博客网 时间:2024/06/09 23:54

使用VS Code进行C语言学习

今年准备考研,所以最近在稍微复习数据结构,所以又要开始写C啦

在被JetBrains的IDE惯坏了之后,除了Clion别的IDE都丑的受不了。Clion适合写项目,而我又只需要写一些简单的C代码,这个时候用起来Clion就感觉不是那么友好了。在一番折腾后,我选择用VS Code编写C语言代码。

使用VS Code的优点有如下几条:

  1. 单个C代码不需要建项目便可以运行。
  2. 调试极为方便,变量信息一览无余,即便是单个C文件也是可以调试的。
  3. 有代码高亮、补全功能
  4. 这个很重要,界面很好看
  5. 安装包只有60M不到,体积小
    这里写图片描述

以上1~3条,对于初学C的程序员来说简直是福音,因为DEV、CB等等,谁用谁知道(逃

环境搭建

(一)基本运行环境搭建

由于VS Code本身只是编译器,所以搭建开发环境前,需要VS Code需要安装C的插件C/C++ for Visual Studio Code(在VSCode中按Ctrl + Shift + X,搜索安装一下即可),并且下载好MinGW,MinGW我是放在C盘根目录下的 C:\MinGW

首先需要在VS Code中打开一个文件夹作为C的运行文件夹,编写好C程序好,按F5,提示选择环境选C++gdb会生成”.vscode”的文件夹,并弹出launch.json的文件,用以下内容代替。

{   "version": "0.2.0",    "configurations": [        {            "name": "(gdb) Launch",             "type": "cppdbg",             "request": "launch",            "targetArchitecture": "x86",            "program": "${file}.exe",             "miDebuggerPath": "c:\\MinGW\\bin\\gdb.exe", // 注意这里要与本机MinGw的路径对应            "args": [],             "stopAtEntry": false,             "cwd": "${workspaceRoot}",            "externalConsole": true,             "preLaunchTask": "g++"        }    ]}

然后,在C程序界面按F5,报错提示,选择配置任务运行程序会在”.vscode”文件夹自动生成tasks.json文件,并用以下内容代替代替原有内容。

{    "version": "0.1.0",    "command": "g++",    "isShellCommand": true,    "showOutput": "always",    "args": ["-g","${file}","-o","${file}.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        }    }}

接下来再按F5,便可以运行啦,是不是很舒服~

(二)显示控制台内容&&中文乱码

通过上面简单的步骤便可以搭建C的运行环境了,美中不足的是每次都需要自己来手动IO操作/来暂停控制台查看程序运行结果,另外中文还是乱码。

乱码问题之前我也提过很多次了,是由于字符集不匹配,不过这里还要吐槽一下M$的CMD真的丑啊,用的还不是UTF-8编码。

解决的思路就是在程序运行前将控制台切换到UTF-8编码,程序运行后暂停控制台。

这里简单带过一下C的一些知识。一般说程序从main()函数开始执行到main()结束。需要注意的是,在main()函数结束return 0之前,还是可以执行一些操作的。另外通过GCC我们可以添加构造函数和解析函数,通过这些工具,就可以解决问题了。

  1. 在”.vscode”文件夹下新建head.h头文件,并填下以下代码。
#include <stdlib.h>static void before(void) __attribute__((constructor));static void after(void) __attribute__((destructor));static void middle(void);static void before(){    system("chcp 65001"); //切换字符集    system("cls");}static void after(){    system("echo.");    system("pause");}
  1. 修改tasks.json,用以下内容替换。
{    "version": "0.1.0",    "command": "g++",    "isShellCommand": true,    "showOutput": "always",    "args": ["-g","${file}","-include","${workspaceRoot}\\.vscode\\head.h","-o","${file}.exe"], //修改的是这一行,添加了-include命令,预编译头文件    "problemMatcher": {        "owner": "cpp",        "fileLocation": ["relative", "${workspaceRoot}"],        "pattern": {            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",            "file": 1,            "line": 2,            "column": 3,            "severity": 4,            "message": 5        }    }}

通过上面的简单步骤,很快就可以搭建起C的开发环境了,还能学到C的不少知识,是不是觉得很舒服呢?

MinGW和搭好C的运行目录在这里可以直接下载http://download.csdn.net/detail/xdqkid/9921617

PS:CSDN移动端太不友好了,居然不能修改自己的文章。转战简书了(逃

原创粉丝点击