前言

每一个计算机新生在入门编程前总会遇到一个最大的问题:用什么软件写代码。在我大一入学前也曾有过这样的疑惑,当时的我对计算机几乎一窍不通,想着在入学后自己练习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的只有一个风格,因此如果想改默认风格的话,要进行如下操作:

  1. 关闭Code::Blocks
  2. 能上维基百科的在这个链接找到Installation那里的代码,复制保存为 colour_themes.conf 文件,如果上不去可以在这里找 colour_themes.conf
  3. 如果是Windows系统,打开codeblocks的安装目录后双击 cb_share_config.exe ;如果是inux系统并且codeblocks已安装到标准位置的话,终端直接运行 cb_share_config
    cb_share_config.exe
  4. 左侧打开下载的 colour_themes.conf ,选中所有的主题右侧打开目标配置文件 default.conf ,一般在 C:\Users\用户名\AppData\Roaming\CodeBlocks 路径下。点击左下角的 Transfer>>然后点击save保存。为保险起见可以先将默认的 default.conf 备份一下
    更改配置文件
  5. 再打开Code::Blocks,点击 Settings--Editor--Syntax highlighting ,从Colour theme中选择合适的颜色主题
    选择主题
  6. 如果更换成黑色主题,可能会看不到光标,原因是光标颜色跟背景重复了。在 Settings--Editor--Margins and caret 面板中,点击Caret的Colour按钮,选择一个合适的颜色,也可以修改weight更改光标宽度
    光标修改

Code::Blocks虽然原本不支持中文,但是可以通过安装汉化包进行汉化,具体步骤如下:

  1. 在这里下载汉化文件:汉化文件下载链接 这个汉化文件是网上大佬做的,感谢大佬
  2. 进入到下图所示目录(即 安装目录\share\CodeBlocks ),新建locale目录;进入locale,新建zh_CN目录,如果这些目录存在,就不用新建(Linux下类似,只是新建 locale/zh_CN 的位置在 /usr/share/codeblocks 这个目录)
    新建locatezh_CN目录
  3. 把汉化文件移动到上一步新建的zh_CN文件夹中,如下图
    汉化文件放入zh_CN文件夹
  4. 点击菜单栏的 Settings--->Environment--->view ,勾选Internationalization,选择chinese(Simplified) ,然后重启Code::Blocks就会生效。
    更改为中文

有时在使用Code::Blocks可能会出现中文乱码的情况,在windows下面出现中文乱码大多都是编码格式的问题不一致的问题,最典型的就是uft-8和gbk冲突的问题。如果一个文件本来是以utf-8存的,但是以gbk打开,就会出现乱码。下面提供一些方法,可能随着时间推移会不适用,但也可以做一些参考。

  1. 方法一:用utf-8打开文件。打开 Setting--->Editor--->Encoding Setting ,可以看到默认是windows-936(其实就是gbk格式)。我们可以把打开模式修改为utf-8,不过这样子操作后,以后打开的文件都必须是utf-8格式。
    更改打开模式
  2. 方法二:让编译器使用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++项目
选择c++

接着填入项目名称,第二行的路径可以自己找一个地方存储
选择项目路径

最后把debug和release都勾选
勾选debug和release

新项目就建立完成,Code::Blocks会默认在项目中生成一个main.cpp文件,里面有一段模板代码,这段代码就是hello world程序。
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;
}
最后修改:2020 年 10 月 15 日 12 : 24 AM
如果觉得我的文章对你有用,请随意赞赏