文章目录
0. 前言
如果是学习C / C++,不建议使用DevC++,我们可以选择其它更高效的IDE(Clion、Visual Studio、VSCode等)
但是DevC++作为蓝桥杯大赛(软件类)C / C++组指定的IDE(Integrated Development Environment),我们有必要学习一下如何使用它
我们可以不用DevC++,但是我们不能不会使用DevC++
当然,如果比赛时你所用的电脑上有别的IDE(CodeBlocks、Visual Studio 2022等),也是可以使用的,选择你熟悉的IDE就可以了
1. 官网
DevC++的官网:DevC++
2. 配置界面语言
在菜单栏中找到:工具→环境选项→语言
↓↓↓
3. 快速新建源文件和自动生成代码模板
- 快速生成源文件的快捷键:CTRL + N
- 自动生成代码模板
在菜单栏中找到:工具→编辑器选项→代码→缺省源
↓↓↓
在缺省源中输入自定义的代码模板
在比赛中,我们可以利用 CTRL + N 快捷键迅速新建源文件,一个源文件对应一道题
利用好快速新建源文件和自动生成代码模板,能为我们节省不少时间
以下是一套经典的C / C++代码模版(当然,可以使用万能头文件)
#include <iostream>
#include <cstring>
#include <vector>
#include <string>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <algorithm>
using namespace std;
void solve() {
}
int main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T = 1;
cin >> T;
while (T--) {
solve();
}
return 0;
}
4. 视图
为了使代码编辑页面最大化,我们可以关闭项目管理页面。调试时,我们可以重新打开项目管理界面查看调试信息
在菜单栏中找到:视图→项目管理
5. 编译运行和调试
编译运行的快捷键:F11
调试的快捷键:F5
在比赛中不建议打断点进行调试,毕竟比赛时代码量也不大,如果打断点进行调试可能会耗费大量时间
如果想快速找到问题所在,可以在关键处打印出变量的信息来辅助调试
5.1 调试的注意事项
DevC++默认是不产生调试信息的,在不产生调试信息的情况下进行调试会出现以下界面
要想正常使用调试功能,需要打开产生调试信息
在菜单栏中找到:工具→编辑选项→代码生成 / 优化→连接器→产生调试信息
↓↓↓
5.2 调试时查看变量的信息
添加断点后点击添加查看(在底部功能栏的调试里),输入你想监听的变量的名称
按下调试按钮后,不断点击下一步(或下一条语句),即可实时查看到某个变量的值
6. 更改主题和更改语法高亮提示
DevC++的默认主题中代码编辑界面的背景是白色的,对于喜欢晚上敲代码的小伙伴来说十分不友好。
6.1 更改主题
在菜单栏中找到:工具→编辑器选项→语法→预设
↓↓↓
在下拉列表中选择自己喜欢的主题
6.2 更改语法高亮提示
前景可以理解为对应代码的颜色,背景可以理解为对应代码的背景颜色
在菜单栏中找到:工具→编辑器选项→语法→选择某个属性→更改前景和背景的颜色
↓↓↓
这里列出几个常用的属性
属性 | 含义 |
---|---|
Comment | 注释 |
Number | 数字 |
String | 字符串 |
Selected text | 被选中的代码 |
7. 常用快捷键以及快捷键的更改
7.1 格式化代码
相信用惯了JetBrains全家桶的小伙伴早已习惯了CTRL+ALT+L的代码格式化快捷键。
为了符合JetBrains全家桶的使用习惯,我们选择更改格式化代码的快捷键。
在菜单栏中找到:工具→快捷键选项→格式化当前文件
鼠标左键选中对应的条目之后按下自定义的快捷键即可
↓↓↓
我们也可以选择格式化代码的括号风格(默认是Java的括号风格)
在菜单栏中找到:Astyle→格式化选项→括号风格
↓↓↓
7.2 复制行
更改为CTRL+D(为了符合JetBrains全家桶的使用习惯)
7.3 搜索文件内容
快捷键:CTRL+F
建议把“搜索文件内容”快捷键前面的“搜索”快捷键删除掉(按下Delete键或ESC键即可删除快捷键)
7.4 替换文件内容
快捷键:CTRL+R
建议把“替换文件内容”快捷键前面的“替换”快捷键删除掉(按下Delete键或ESC键即可删除快捷键)
注意替换时要选择替换当前文件
如果想快速替换某个单词,只需要双击该单词,然后按下 CTRL+R 快捷键,DevC++会自动帮我们将要替换的单词填上去
↓↓↓
7.5 比赛中的小技巧
替换文件内容时记得选择当前文件,不然当前打开的所有文件中的int都会变成long long
在比赛时,题目给出的数据有可能会超出 int 的数据范围。为了方便,无论题目给出的数据有没有超出 int 的数据范围,我们统一使用 long long
但是我们平时习惯了使用 int ,让我们短期内改变自己的习惯不太可能
这个时候我们就可以用替换文件内容的功能,把当前文件中的 int 全改为 long long ,最后再单独把main函数前面的 long long 改回 int
7.6 代码补全
更改为CTRL+ENTER
相比JetBrains全家桶来说,DevC++的代码补全功能没有那么好用
更改完代码补全的快捷键后,我们再修改一下代码补全的延时
在菜单栏中找到:工具→编译器选项→代码补全→Code Completion,然后将延时拉到最左边
↓↓↓
设置完成之后,我们打出一个字母,按下 CTRL+ENTER 快捷键之后就会弹出代码补全提示了
如果我们想使用某个函数,又不想把整个函数名全部打完(或者函数名记得不是很清晰),我们也可以按下 CTRL+ENTER 快捷键来获得提示。
例如,我想使用 cmath 头文件下的 sqrt() 函数,当打出 sq 时,按下 CTRL+ENTER 快捷键就可以获得提示(弹出提示的前提是源文件已经包含了函数所在的头文件,当然,你可以使用万能头文件)
如果我们想查看函数返回的参数和调用该函数所需要传递的参数,我们可以把鼠标光标置于函数填写参数的地方(即括号中),就可以查看相关信息
7.7 代码上移或下移
代码上移:CTRL + SHIFT + ↑
代码下移:CTRL + SHIFT + ↓
这两个快捷键也可以在JetBrains全家桶中使用
示例(某一行的代码无需全部选中):
按下 CTRL + SHIFT + ↑ 快捷键后,选中的代码就会自动上移一行(若选中的代码上移一行后进入了另一个代码块,DevC++会自动帮我们调整代码的位置)
最后再按下代码格式化快捷键 CTRL+ALT+L
8. 查看函数所需要的形参
当我们不记得使用某个函数需要传递什么参数时,我们可以点击函数的括号以获得相关提示(如果点击函数的括号没有弹出提示,说明还没有包含函数所在的头文件)
点击提示上的小箭头,还可以查看函数的各个重载版本分别需要什么参数
9. 调整代码的字体大小
按住CTRL键后滚动鼠标滑轮即可调整代码字体大小
10. CTRL+鼠标左键
-
按住CTRL键后鼠标左键点击函数名可以快速定位到函数实现的位置,查看函数的源码
-
按住CTRL键后鼠标左键点击某个变量,可以快速跳转到定义该变量的位置
在程序的代码量比较大时,利用好该技巧可为我们节省一点时间
11. 在使用DevC++过程中可能会遇到的一些问题
11.1 使用auto关键字时报错
编译器给出以下提示信息
[Warning] ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat]
原因:auto关键字在C++11之后的含义已经发生改变(根据提示信息推断出来的)
解决方法1:
- 在菜单栏中找到:工具→编辑选项
- 勾选编译时加上以下命令
- 输入以下代码
-std=c++11
解决方法2(推荐):
- 在菜单栏中找到:工具→编辑选项→代码生成 / 优化→代码生成→语言标准(-std)
- 选择GNU C++11
11.2 使用to_string方法时报错
编译器给出以下提示信息
[Error] ‘to_string’ was not declared in this scope
原因:to_string方法是C++11之后才出现的
解决方法:与本文 11.1 使用auto关键字时报错 的解决方法相同
11.3 ld returned 1 exit status
之所以出现这个问题,是因为当前的程序正在另一个窗口运行(如果你的程序耗时较长,即使你关掉了窗口,程序也可能还没有真正关闭,需等待片刻才能重启程序)
如图,当前程序正在运行,需要我们输入一个整数
如果我们没有输入整数且没有关闭这个窗口,同时又再次编译运行当前程序,编译器就会给出提示信息[Error] ld returned 1 exit status
解决方法:关闭正在运行程序的窗口