系统环境
本文通过虚拟机实现整个流程的模拟,使用的是Windows10x64纯净系统
安装VS Code
官网链接:https://code.visualstudio.com/,安装过程很简单,一直下一步就可以了,至于以下这一步可以根据个人喜好来设置
VS Code首次启动主界面如下
可以看到右下角提示安装中文包,如果希望使用中文界面,则安装即可
安装完成会自动重启VS Code,可以看到界面已经是中文了
安装MinGW64
官网链接:https://sourceforge.net/projects/mingw-w64/files/
滚动到网页如下位置
这里不推荐使用在线安装器,安装的时候下载速度非常慢,建议下载离线包自己配置
具体地:
-
x86_64-posix
适用于64位操作系统,i686
适用于32位操作系统 -
sjlj
兼容32位和64位,稳定性较高,seh
仅支持64位,dwarf
仅支持32位,后两者性能较高 -
win32
用于开发窗口应用程序,这里用不到
这里使用了x86_64-posix-sjlj
,下载完7z压缩包后进行解压,将mingw64
文件夹放置在C盘的一个位置
打开里面的bin
文件夹,复制路径
打开系统环境变量,将之前复制的路径粘贴到PATH
中,然后一路确定即可
至此,推荐重启一遍电脑,确保配置的环境变量生效
建立工作目录
建立一个自己的工作目录
打开VS Code,在“文件-将文件夹添加至工作区”中选择之前创建的工作目录,然后点击“是,我信任此作者”
安装C/C++扩展
打开VS Code,点击左边的扩展选项,搜索“C/C++”,然后进行安装
配置工作目录
在工作目录中新建空文件temp.cpp
,然后直接按F5
运行,会提示选择环境,选择“C++ (GDB/LLDB)”
然后选择“g++.exe”
接着,VS Code会创建两个json
文件
打开tasks.json
,在args
中添加-DLOCAL
,并将cwd
改为workspaceFolder
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "C:\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-DLOCAL"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
按下快捷键Ctrl
+Shift
+P
,输入“C/C++”,选择“C/C++: 编辑配置(JSON)”
在json
文件中,将LOCAL
添加至defines
,并且把cppStandard
设置位c++98
(比赛只能用C++98……)
以下仅供参考
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"LOCAL"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe",
"cStandard": "c17",
"cppStandard": "c++98",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
添加模板
在工作目录中添加文件template.cpp
,在其中填入模板
#include <iostream>
#include <cstdio>
#include <ctime>
using namespace std;
int main()
{
clock_t c1 = clock();
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
// Code Here
end:
cerr << "Time Used:" << clock() - c1 << "ms" << endl;
return 0;
}
添加批处理
考虑到每次复制模板也很麻烦,于是在工作目录中添加一个批处理文件init.bat
,写入如下指令
@echo off
copy main.cpp last.cpp
copy template.cpp main.cpp
这两句指令会将原来的代码文件做个备份,然后将模板覆盖上去
又考虑到有时在一道题还没AC的时候要做另一道题的情况,就在工作目录中再添加一个bk.bat
(bk
是backup
的缩写),写入如下指令
@echo off
if not exist backup md backup
copy main.cpp "backup/%1.cpp"
使用此批处理时需要加上一个参数,也就是文件名称,不需要加后缀cpp
运行代码
在工作目录中添加文件data.in
,data.out
和main.cpp
,将两个输入输出文件拖到右边,随便写一段代码作为测试,此处以A+B为例
将下方的终端换成cmd
,因为powershell
调用bat
不太方便,点开+
右边的下箭头,点击“配置终端设置”
将默认终端设为cmd
设置完成后回到main.cpp
,按下快捷键Ctrl
+Shift
+B
生成exe
,生成完毕后在cmd
终端中输入main
即可看到data.out
给出了结果
调试代码
若要调试代码,下好断点后使用快捷键F5
会启动调试,调试启动会比较慢
将来的流程
当要写一道新题目时,如果之前的那道还未解决,那么在终端中输入bk unsolved
,unsolved.cpp
会被放在backup
文件夹中
接着输入init
,main.cpp
就会被初始化为模板了