CLion入门教程
重要通知:作者已不再维护博客园文章,此篇教程内容有更新,请移步新站:
https://onlyar.site/2022/01/17/C-CLion-Getting-Started/
1. 说点什么
以下我将介绍地表最强(可能是之一,别打我) C/C++ 开发 IDE——CLion,以及如何使用它来快乐刷题。
工欲善其事,必先利其器。一个好的编程工具对写代码或是做题来说格外重要,尤其是考场上拼手速和debug的时候。
首先是各种工具的对比:
-
DEV C++:大伙用的最多的,很方便啊是吧,但是也很朴素……没有代码补全是不是有点难受?
-
小熊猫 DEV:我后来用的是这个,增添了代码补全,也是比较流畅,但毕竟是魔改版而且跟原来的 DEV 不能同时用,不放心就给卸了;
-
Visual Studio:没怎么深入体验过,那大 10 个 G 看了还是……呵呵
-
VSCode:可以说编程工具里的瑞士军刀,什么都能写,体验也还不错,美中不足的就是……安装配置 C 语言真的很麻烦。
-
CLion:安装好之后应该在 1G 左右,收费(北航邮箱可以免费使用教育版),有一定的学习成本,但是让我最欣赏的是它真的特别人性化,写起代码相当便捷流畅。而且学校机房是可以使用 CLion 的(VSCode和小熊猫用不了,万一到机房考试还是一夜回到解放前)。
关于我自己的经历:
那是一次算法上机考试,结束后一同学让我帮 debug。我先是打开了原始的 DEV C++ 看代码,emm……也没啥问题,样例都对,但是交上去总有几个点 WA。我就反复找错改改怎么还是 WA,后来我把代码 copy 到 CLion 上,发现了这么一段:
浮点数的快速排序,写一个 cmp 函数,乍一看可能没问题,但是 CLion 给我一个警告,翻译过来是“类型转换范围缩小”,我恍然大悟(不明白的同学请速速面壁)。从此我成了 CLion 的忠实信徒233。
以上是我的代码工作页面,采用输入输出重定位实现输入输出分离,不像控制台一样又丑又不方便哈~
2. 操作步骤
1. 注册北航邮箱
注意你们的 accoding 账号本身只是一个账号,不能用来收发邮件,还要单独申请邮箱,不过你的邮箱名字不一定非得是学号哈,可以个性化的:
按照步骤自己来哈~
2. 下载以及安装 CLion
下载 CLion:适用于 C 和 C++ 的智能跨平台 IDE (jetbrains.com)
这里直接点下载 .exe 就好,稍等片刻。
不好意思我懒了……其实是我不能再重装一遍,找到别人的博客大家看看叭~CLion安装配置与学生认证
注意最后创建工程的时候改成 C 可执行文件而不是 C++。
3. 舒适写代码
小问题要提一下下,CLion 每写一份代码是要重新建一个项目 Project,而 Project 里有大量看不懂乱七八糟的东西,所以为了免去频繁新建 Project 的麻烦,我推荐每次做完一道题把代码整个复制粘贴保存到一个新的 .c 文件里(可以用 DEV C++ 或是记事本打开,这也是我CLion 和 DEV 双持的原因)。然后把 CLion 里的代码删掉。
不过还有一个小问题就是——CLion 无法不定行读入,也就是不能按 Ctrl+Z 来停止读入。这里我推荐文件I/O (文件读写):
- 右键
cmake-build-debug
文件夹,新建 -> 文件,命名为a.in
,再新建一个命名a.out
。
- 把这两个文本打开然后拆分右移等一系列操作:
最后效果如图
记得交题的时候把 freopen
注释掉喂!(快捷键 Ctrl+/)
4. 赢在起跑线
读到这里我再讲一下 CLion 的日常使用姿势:
a.in
和a.out
应该是日常存放在cmake-build-debug
里,一般不会在左边的文件目录栏里动了。a.in
和a.out
应该一直被打开放在你的右侧边栏,方便快速输入输出。- 写完代码准备提交的时候应该注释掉
freopen
语句,否则会 TLE。 - 一道题通过以后可以在别处新建一个
.c
文件,然后用记事本打开(右键文件,点击“编辑”),把 CLion 里的代码全选剪切过去。 - 这个时候你 CLion 的代码区就空了。
关键是,做下一道题的时候难道要重打一遍???
不不不,下面我将介绍一个外挂级操作:实时模板————一键生成初始代码,请看
我只打了一个大写 S:
然后啪的一下敲下回车:
设置方法如下:
- 进入 CLion 设置
- 搜索“实时模板”
- 选中 C/C++ 点击新建动态模板
- 填写如下 4 步 (3 是你自己喜欢的开题模板,但是要在你的光标位置加上
$END$
)
顺便贴出我自己的
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
freopen("a.in", "r", stdin);
freopen("a.out", "w", stdout);
$END$
return 0;
}
- 最后点“更改”,把“C”打勾,“应用”:
- 试试吧!
额外注意:
- CLion 与其他工具不同,程序里打开文件(例如
freopen
)不是在同一目录下,而是在cmake-build-debug
文件夹! - 任何时候按下 Ctrl+Alt+L,会触发代码自动美化,就是一键整理;
- CLion 对警告特别敏感,注意读一些警告信息(英文)会避免很多很多潜在的小 bug;
- 有些时候在警告处按 Alt+Enter,会给你自动修改;
- 永远要注意英文的提示信息,最好弄明白到底出了什么问题,比如(Narrowing conversion);
- 打上一条和上上条的脸:
scanf
语句的警告大概意思是 “scanf
本身有安全问题”,一般问题不大可以忽略; - 有时候警告的意思是你的代码太丑了,虽说不影响运行但是还是最好让它帮你改一下,培养优雅的码风。
以上,还有问题联系请我~