
第3节 多彩一点

在本章第2节中,我们学习了让计算机开口说话应使用printf语句。可以发现,计算机“说”出的话都是黑底白字,其实计算机的输出可以是彩色的,我们一起来看看吧。
注意,此处代码只能在Windows操作系统下编译运行。如果你使用的是本书推荐的C语言的软件“啊哈C”,那么你的代码肯定可以运行成功。下面来看看如何让颜色出现。
请尝试输入以下代码并运行,看看会发生什么。


运行之后你发现了什么?底色仍然是黑色。但是,文字的颜色已经变为“紫色”了,奥秘就在下面这行代码中。

在这句话中,“5”代表“紫色”,你可以尝试一下其他数字,看看分别是什么颜色。既然字的颜色可以变,那么背景色是否可以变呢?尝试下面这段代码:

运行成功后的界面如图2-15所示。

图2-15 运行成功后的界面(此时背景应该为白色,文字颜色应该为紫色)
上面这段代码在原来的5前面加了一个f,这里的f代表背景色是白色。
那么设置背景色和文字颜色的方法是,在color后面加上两个一位数字,第一个数字表示背景色,第二个数字表示文字颜色。如果在color后面只加了一个一位数字,则表示只设置文字颜色,背景色仍然使用默认的颜色。
需要说明的是这里的一位数字其实是16进制的,它只能是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f中的某一个。
[题外话]“不看,也无伤大雅”
这里学习一个新知识——进制。
在现代数学中,我们通常使用十进制,即使用数字0、1、2、3、4、5、6、7、8、9。9 之后的数字便无法表示了,我们的解决方法是:使用“进位”来表示。例如,由于阿拉伯数字只到9,于是我们便进一位,当前这位用0表示,便产生了用10来表示“十”。因为是“逢十进一”,所以称为十进制。
而十六进制是“逢十六进一”,即使用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 来表示。0~9 与在十进制时相同,但是“十”在十六进制时用大写字母A表示,以此类推,“十五”在十六进制中用大写字母F来表示。F是“十六进制”中的最后一个,因此数字“十六”就表示不了。于是我们又采用刚才在十进制中表示不了就进一位的老办法,当前应该用0表示。“十六”在十六进制中表示为10。同理,“二十七”在十六进制中表示为1B。
在中国古代,很多朝代都是用十六进制作为日常计数的,例如,成语“半斤八两”的典故来源于十六进制;还有中国古代的算法是上面2颗珠子,下面5颗珠子。若上面每颗珠子代表数字5,下面每颗珠子代表数字1,那么每位的最大计数值是15,15正是十六进制的最大基数。当使用算盘计数遇到大于15的时候,我们就需要在算盘上“进位”了。
其实在我们现代的日常生活中,也不都是“十进制”,例如,60秒为1分钟,60分钟为1小时,就是用的六十进制。
一起来找茬
下面这段代码是让计算机在屏幕上输出绿底白字的 hi。其中有 4 个错误,快来改正吧!

✈ 更进一步,动手试一试
1.尝试让计算机打印这个小飞机图案(绿底白字)。


2.尝试让计算机打印这个小队旗图案(白底红字)。

✈ 这一节,你学到了什么
让计算机打印出来的字符有不同颜色的语句是什么?