1. 格式化

表 1. printf 的格式化
格式 说明

%s

输出一个字符串,%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%c

输出一个字符

%d

整型输出

%f

输出实数,以小数形式输出,%-4.2f 指格式化为小数,其中 .2 指保留2位小数。

示例
# 默认右对齐,多个格式要用引号
printf "%4s %4s" abc def
 abc def
# 左对齐
printf "%-4s %-3s" abc def
abc  def
# 格式比参数少,格式被复用
printf %-4s abc def
abc def
# 格式复用是整个格式串复用
printf "%s %s %s\n" a b c d e f g h i j
a b c
d e f
g h i
j

2. 转义

表 2. printf 的转义序列
序列 说明

\a

警告字符,通常为ASCII的BEL字符

\b

后退

\c

抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略

\f

换页(formfeed)

\n

换行

\r

回车(Carriage return)

\t

水平制表符

\v

垂直制表符

\\

一个字面上的反斜杠字符

\ddd

表示1到3位数八进制值的字符。仅在格式字符串中有效

\0ddd

表示1到3位的八进制值字符