零基础入门学习C语言:带你学C带你飞
上QQ阅读APP看书,第一时间看更新

1.8 打印

视频讲解

一般听到打印二字,大家都会自然而然地联想到第三个字:机,打印机。但是在编程中,打印一些数据,也就是往屏幕上输出一些数据的意思。

比如1.7节演示的程序,就是往屏幕上打印一段文本。这个程序只有6行代码,麻雀虽小,五脏俱全。虽然暂时不知道是什么原理,但程序确实可以运行。不难发现,打印的内容包含在一对双引号里边,所以只需要稍作修改,就可以让它打印其他内容:

代码修改之后还需要将程序重新编译运行,才能看到新的结果:

代码行间有个叫printf的单词,print的意思是打印,言下之意就是让你把指定的内容打印到屏幕上。那在哪里指定内容呢?就是在printf紧接着的小括号的双引号里边指定打印的内容。注意,这里的小括号必不可少,因为这是C语言的约定。只有遵照C语言的约定给它下命令,它才懂你的意思,才会按照你的要求去完成任务。

事实上设计一门编程语言,就是设计一套规则和约定,只要用户按照正确的规则和约定来输入,那么程序就能正确执行。

printf最后的f是formatted的缩写,格式的意思,因此也通常把printf称为格式化输出函数。

“函数”这个词在本书是第一次提及,但在此之后,大家会经常看到它。因为C语言为我们提供了很多基本函数,它们用于实现不同的功能,如printf函数,就是实现格式化输出的功能,没有它,我们不可能仅用6行代码,就将文本打印到屏幕上。

有些想象力丰富的读者可能会依葫芦画瓢,将代码改成下面这样(使用vim fish.c命令创建一个新的源代码文件):

觉得编译运行后应该会打印一条鱼,结果输出如下:

这次体验明显与之前不同,如果编译完程序以后出现这么多内容,那说明你的程序肯定哪里出问题了,编译不通过。这些内容就是提醒你具体的问题出在哪儿,不过暂时先不用管它。接下来我先告诉你这个程序应该怎么改,然后再来研究为什么要这样改编译才会通过。

程序应该改成下面这样:

代码修改完之后保存,并将程序重新编译运行,结果输出如下:

这次成功了,现在来解释一下原因:在C语言中,用双引号括起来的内容称为字符串,也就是平时所说的文本。字符串可以由可见字符和转义字符组成,像上边组成这条鱼的星号(*)就是可见字符,因为你输入什么,显示出来就是什么。

如果想将一个字符串分为两行来显示,那么就需要使用转义字符。转义字符一般是表示特殊含义的非可见字符,以反斜杠开头,见表1-1。

表1-1 转义字符

因此,这里在想要另起一行打印的位置插入换行符(\n)。

那后边还有一个反斜杠(\)代表什么意思呢?这个反斜杠后边不带任何内容,意思是:这行代码太长了,我想分两行来写。

注意:

下边一行的前面不要带有空格或Tab这类空字符,要紧挨着行首来写。不然的话,C语言会认为前边的空字符也是字符串的一部分。

事实上反斜杠不仅可用于连接两行字符串,还可用于连接普通语句,比如下面这样写也是合法的:

对于刚接触Linux操作系统的朋友,可能会对书上一些Linux命令感到陌生,这里小甲鱼给大家准备好了Linux常见命令的用法和例子,详见索引帖http://bbs.fishc.com/thread-66398-1-1.html