前言
每一个计算机新生在入门编程前总会遇到一个最大的问题:用什么软件写代码。在我大一入学前也曾有过这样的疑惑,当时的我对计算机几乎一窍不通,想着在入学后自己练习coding,但却看着电脑中的Visual Code不知所措。还好我有幸遇到一个很好的师兄,他不但为我指明了学习编程的道路,还顺便向我推荐了合适的编程软件「Code::Blocks」。我拿着Code::Blocks跑出了人生中第一个c++程序,同样的它也在后来成为ACMer的道路上伴随着我。
我相信刚开始学习编程的新人都会经历在网上寻找编程软件的日子,但是网上的信息质量往往参差不齐,一些回答有时还会夹杂着孰优孰劣的争论,这显然脱离了教程的本质。最后好不容易在海量资源中筛选出一个软件,却又发现安装运行一堆坑。也因此我打算把师兄的教程与自己的使用经历写成一篇文章,方便需要使用的人参考。当然,能编程的软件千千万,本人也只是选了一个简单好用的而已。
本文的目的仅仅在于让你学会下载安装一个软件,用软件写出第一段代码并完美的运行它,关于软件的细节问题,在此不做太多的深究。文章面向纯新手,若你已有别的编程经历,相信你对IDE的了解程度不会弱于我,因此如果本文有什么技术错误,也欢迎大佬们指出。
软件的准备
1.软件介绍
「Code::Blocks」是一个免费,开源的c|c++ IDE,简单轻量可扩展,虽然不像宇宙神器Visual Studio那样功能全面,但是非常适合纯新手练习coding。VS对新手最大的“不好”就在于它太全面了,如果在新手期习惯了智能补全等功能,可能会在以后造成“提笔忘码”的现象。同样这也是一部分ACMer的打码利器,练习ACM并不会用到VS的大部分功能,轻量的Code::Blocks能在保留最基础的功能下,让ACMer更加专注于coding。
当然Code::Blocks也有它的缺点,它的debugger用起来不是很方便,以及存在静态数组长度可不写死
的语法漏洞。第二就是,这毕竟只是一个轻量级的IDE,日常练习c++或者做黑框项目尚且够用,但如果发展到要用c++写大型项目或图形化界面,它就有点力不从心了。不过如果到了这种地步,你肯定也已经度过了需要练习基本语法的新手期,这时就放心的使用Visual Studio吧。
2.软件下载
软件的下载链接在下面,本人使用的是16.01版本,本文的教程也是基于此版本。虽然软件已经更新到了20.03,但是安装过程是一样的,所以新版本的用户可以放心参考,如果需要以前的版本,也可以在下面的度盘链接里面找,提取码:98we。
3.软件安装(windows系统)
软件是在win10系统安装,win7也能照常使用。使用Linux的用户可以用包管理器直接安装,我相信能用Linux的都是对编程有一定了解了,安装一个软件不成问题。至于MacOS,由于本人没有mbp,所以没法演示MacOS的安装,等以后更新装备了再做补充(咕咕咕)。
我们下载了安装包之后,直接双击就可以开始安装了。安装过程很简单,一路默认next就可以了,大概1分钟左右可安装完毕。安装完之后可以立即运行,或者稍后再运行。
到这里就安装完成了,因为Code::Blocks没有自带中文,所以需要我们手动汉化,在运行那里会进行说明,想用英文版的同学可以跳过汉化步骤直接使用。(这里建议直接英文版,可以多接触英语)
4.软件运行
双击图标运行软件,直接打开的就是软件主界面,然后就可以开始用了。如果以前曾经创建过项目,会在主界面中间显示,这样可以快捷打开。
如果需要更改字体样式和大小,可以点击上面的 Settings--->Editor--->General settings
,点击Font选项最右边的choose,在弹窗中进行更改,或者按住ctrl然后滚动鼠标滚轮来快速更改大小。
Code::Blocks的只有一个风格,因此如果想改默认风格的话,要进行如下操作:
- 关闭Code::Blocks
- 能上维基百科的在这个链接找到Installation那里的代码,复制保存为
colour_themes.conf
文件,如果上不去可以在这里找 colour_themes.conf - 如果是Windows系统,打开codeblocks的安装目录后双击
cb_share_config.exe
;如果是inux系统并且codeblocks已安装到标准位置的话,终端直接运行cb_share_config
- 左侧打开下载的
colour_themes.conf
,选中所有的主题。右侧打开目标配置文件default.conf
,一般在C:\Users\用户名\AppData\Roaming\CodeBlocks
路径下。点击左下角的Transfer>>
,然后点击save保存。为保险起见可以先将默认的 default.conf 备份一下 - 再打开Code::Blocks,点击
Settings--Editor--Syntax highlighting
,从Colour theme中选择合适的颜色主题 - 如果更换成黑色主题,可能会看不到光标,原因是光标颜色跟背景重复了。在
Settings--Editor--Margins and caret
面板中,点击Caret的Colour按钮,选择一个合适的颜色,也可以修改weight更改光标宽度
Code::Blocks虽然原本不支持中文,但是可以通过安装汉化包进行汉化,具体步骤如下:
- 在这里下载汉化文件:汉化文件下载链接 这个汉化文件是网上大佬做的,感谢大佬
- 进入到下图所示目录(即
安装目录\share\CodeBlocks
),新建locale目录;进入locale,新建zh_CN目录,如果这些目录存在,就不用新建(Linux下类似,只是新建locale/zh_CN
的位置在/usr/share/codeblocks
这个目录) - 把汉化文件移动到上一步新建的zh_CN文件夹中,如下图
- 点击菜单栏的
Settings--->Environment--->view
,勾选Internationalization,选择chinese(Simplified) ,然后重启Code::Blocks就会生效。
有时在使用Code::Blocks可能会出现中文乱码的情况,在windows下面出现中文乱码大多都是编码格式的问题不一致的问题,最典型的就是uft-8和gbk冲突的问题。如果一个文件本来是以utf-8存的,但是以gbk打开,就会出现乱码。下面提供一些方法,可能随着时间推移会不适用,但也可以做一些参考。
- 方法一:用utf-8打开文件。打开
Setting--->Editor--->Encoding Setting
,可以看到默认是windows-936(其实就是gbk格式)。我们可以把打开模式修改为utf-8,不过这样子操作后,以后打开的文件都必须是utf-8格式。 - 方法二:让编译器使用GBK编码(推荐)。在
Settings--->Compiler--->Other compiler options
里面填入-finput-charset=GBK
和-fexec-charset=GBK
。让编译器使用GBK编码,然后确定,重新保存文件即可。
Code::Blocks默认情况下是不持支c++11的编译的,但现在大部分都用c++11以上的代码了,因此可以在 settings--->complier
勾选下图的选项,即可支持c++11的编译。(c++14和c语言的设置也是在这里找)
第一个程序
接下来我们尝试用Code::Blocks来编写著名的「Hello world」程序。首先点击左上角的 File--->new--->project
,选择Console Application(即所谓的命令行程序)。
接着根据需要的语言选择,这里演示c++项目
接着填入项目名称,第二行的路径可以自己找一个地方存储
最后把debug和release都勾选
新项目就建立完成,Code::Blocks会默认在项目中生成一个main.cpp文件,里面有一段模板代码,这段代码就是hello world程序。
点击上面的黄色齿轮即可进行代码编译,对应快捷键是ctrl+F9,绿色箭头是运行,对应快捷键是ctrl+F10。只有编译无错误之后才能运行代码。
最后点击运行,在黑框中可以看到输出了hello world,目前为止就完成了我们的第一个程序的运行,接下来就跟着书本开始编程学习吧。
结语
可能有人会说我们老师用的是XXX,教材使用的是XXX,这个比起XXX就是辣鸡。我想说的是,在IDE上比出个高低真的大可不必,除非你以后做IDE开发。Mac用户可能使用Xcode,Linux用户大概钟爱于vim,Windows上也不仅只有Code::Blocks,软件只是工具,真正有创造力的是人,不要被工具框死,选择最适合自己的即可。对于刚接触编程的我们,把书本代码运行起来,得到一个与书本相同的运行结果,才是最激动人心的时刻。(最后附上一段有意思的c++代码)
/**
* 运行程序,做5次选择,就能知道你的生日是几号。
* author: https://blog.csdn.net/qq_30062589/article/details/54812984
*/
#include <iostream>
using namespace std;
int main()
{
int date = 0; // Date to be determind
char answer;
// Prompt the user for Set 1
cout << "Is your birth date in this set ?" << endl;
cout << "16 17 18 19\n" <<
"20 21 22 23\n" <<
"24 25 26 27\n" <<
"28 29 30 31" << endl;
cout << "Enter N for No and Y for Yes: ";
cin >> answer;
if (answer == 'Y')
date += 16;
// Prompt the user for Set 2
cout << "Is your birth date in this set ?" << endl;
cout << " 8 9 10 11\n" <<
"12 13 14 15\n" <<
"24 25 26 27\n" <<
"28 29 30 31" << endl;
cout << "Enter N for No and Y for Yes: ";
cin >> answer;
if (answer == 'Y')
date += 8;
// Prompt the user for Set 3
cout << "Is your birth date in this set ?" << endl;
cout << " 1 3 5 7\n" <<
" 9 11 13 15\n" <<
"17 19 21 23\n" <<
"25 27 29 31" << endl;
cout << "Enter N for No and Y for Yes: ";
cin >> answer;
if (answer == 'Y')
date += 1;
// Prompt the user for Set 4
cout << "Is your birth date in this set ?" << endl;
cout << " 2 3 6 7\n" <<
"10 11 14 15\n" <<
"18 19 22 23\n" <<
"26 27 30 31" << endl;
cout << "Enter N for No and Y for Yes: ";
cin >> answer;
if (answer == 'Y')
date += 2;
// Prompt the user for Set 5
cout << "Is your birth date in this set ?" << endl;
cout << " 4 5 6 7\n" <<
"12 13 14 15\n" <<
"20 21 22 23\n" <<
"28 29 30 31" << endl;
cout << "Enter N for No and Y for Yes: ";
cin >> answer;
if (answer == 'Y')
date += 4;
cout << "Your birth date is " << date << endl;
return 0;
}
版权属于:PCsky
本文链接:http://hyouka.club/index.php/archives/11/
转载时须注明出处及本声明