首页 理论教育 格式化打印命令printf

格式化打印命令printf

时间:2023-11-18 理论教育 版权反馈
【摘要】:内置命令printf用来进行格式化的打印输出,语法格式如下:格式化字符串format一般用双引号括起来,它可以包含三种类型的字符。例如,显示问候语,可以运行echo"Good morning",用printf命令的话,运行:echo命令默认带着换行符,而printf命令默认不带,所以,在每条printf命令中加换行符\n几乎是必须的。printf确实比echo复杂,但功能强大,echo不可能替代printf。内置命令printf与C语言的函数printf的功能类似,学习过C语言的人掌握它非常容易。

格式化打印命令printf

内置命令printf用来进行格式化的打印输出,语法格式如下:

978-7-111-48202-4-Chapter08-213.jpg

格式化字符串format一般用双引号括起来,它可以包含三种类型的字符。第一种为普通字符;第二种为转义字符,由反斜杠引出,最常见的、前面也提到过的为\n,用来换行;第三种为格式指示符(format-specifier),由百分号引出,最常见的为用来打印整数的%d和打印字符串的%s。

例如,显示问候语,可以运行echo"Good morning",用printf命令的话,运行:

978-7-111-48202-4-Chapter08-214.jpg

echo命令默认带着换行符,而printf命令默认不带,所以,在每条printf命令中加换行符\n几乎是必须的。如果不加,那么命令的输出与系统提示符将出现在同一行:

978-7-111-48202-4-Chapter08-215.jpg

下面是关于格式指示符的例子,显示年龄和名字:

978-7-111-48202-4-Chapter08-216.jpg

也许读者会问,直接运行命令echo"My age is 20"不就可以吗,为什么这么复杂?printf确实比echo复杂,但功能强大,echo不可能替代printf。

printf的输出默认显示在屏幕上,用选项-v可以让printf的输出不显示在屏幕上,而是记录在一个变量里。例如:

978-7-111-48202-4-Chapter08-217.jpg

这时,屏幕没有显示输出,Good morning被记录在变量greeting里。显示greeting的值就知道了:

978-7-111-48202-4-Chapter08-218.jpg

关于转义字符,在第2章讲echo的时候已经讲过,printf命令使用的转义字符与echo命令的基本一致,这里不再重复。关于格式指示符,见表8-7。

表8-7 printf格式指示符

978-7-111-48202-4-Chapter08-219.jpg

例如,十进制的28,对应的八进制数值为34、十六进制数值为1c(小写字母)或1C(大写字母):

978-7-111-48202-4-Chapter08-220.jpg

同C语言一样,数字0开头的数为八进制数,0x或者0X开头的数为十六进制数,例如:(www.xing528.com)

978-7-111-48202-4-Chapter08-221.jpg

下面对比一下%s与%b,就会明白%b的作用。

978-7-111-48202-4-Chapter08-222.jpg

978-7-111-48202-4-Chapter08-223.jpg

%f用来显示浮点数,默认精度为保留到小数点后6位:

978-7-111-48202-4-Chapter08-224.jpg

使用%10.4f时,10表示显示数值的总宽度,4表示小数点后的保留位数,得到2.3568,前面有四个空格,即,向右对齐,总宽度为10:

978-7-111-48202-4-Chapter08-225.jpg

使用%-10.4f时,是向左对齐,总宽度仍然为10,2.3568的后面有四个空格。为了能明显看出2.3568的后面有四个空格,在\n的前面加一个分号:

978-7-111-48202-4-Chapter08-226.jpg

使用%15.4e,向右对齐,23.567847显示为2.3568乘以10的一次方,即,2.3568e+01:

978-7-111-48202-4-Chapter08-227.jpg

使用%-15.4E,总宽度为15,向左对齐,0.00023567847显示为2.3568乘以10的负4次方,即,2.3568E-04:

978-7-111-48202-4-Chapter08-228.jpg

使用%10.4f,小数点后保留4位,不够4位则补0:

978-7-111-48202-4-Chapter08-229.jpg

使用%-10.4G,后面的0不显示,总宽度为10:

978-7-111-48202-4-Chapter08-230.jpg

以上只介绍了printf的一小部分功能。内置命令printf与C语言的函数printf的功能类似,学习过C语言的人掌握它非常容易。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈