printf(格式控制字符串,表达式,表达式,……)
其中格式控制字符率是字符串表达式,通常是由用一对双引号括起来的字符串常量。它包含三类字符:普通字符、转义字符和格式转换说明,它们的作用分别如下:
(l)普通字符,要求按原样输出。
(2)转义字符,要求技转义字符的意义输出,如’\n’,表示输出时回车换行,’\b’表示退格等。
(3)格式转换说明,以字符%开头至格式符结束的字符列组成,其一般形式为
%[-」「+」「」[#」「W][.p][h/l/L]输出格式符
其中用方括号括住的内容是格式修饰说明,可以缺省(不出现),如"%d"、"% 7.5f"等。每个格式转换说明对应一个输出项,输出项可以是常量、变量或表达式。格式转换说明的作用是将对应输出项的内容按格式符要求产生出字符列,并按格式修饰说明排版输出。
输出格式符共有16个,有12种不同的格式,考试大纲只要求掌握表3.2所列的九种。
3.4 常用输出格式符表中格式符的意义
d或i 整型数据以十进制形式输出
o 无符号整型数据以八进制形式输出
X 无符号整型数据以十六进制形式输出
U 元符号整型数据以十进制形式输出
C 字符的ASCll码数据,输出对应的字符
S 输出字符串
f 以“整数部分.小数部分”形式输出实型数据
e 以[-]n.nnnnne±xx输出实型数据
g 以f或e格式输出
说明:
(1)x格式符同。格式符一样,把符号位作为数的一部分输出。对于x格式,用字符a、b、c、d、e、f(或A、B、C、D、E、F)表示9之后的六个十六进制数字符。
(2)一个整数,只要它的位在0-255范围内,也可以用字符形式输出,输出以该整数为ASCII代码的字符。反之,一个字符数据也可以用整数形式输出,输出该字符的ASCII代码值。
(3)f、e和g格式符用于输出实型数据,格式转换时有四舍五人处理。对于f格式,小数点后的数字个数可由格式修饰说明p指定,若p为0,不显示小数点。用e格式输出时,对于非0实数,小数点前有一位非零数字,输出格式中的有效位数可由格式修饰说明p指定;字符e(或E)之后是指数,指数部分至少包含两个数字。若输出值的绝对值不小于 1E+100,则指数部分多于两位数字。
g格式能根据表示数据所需字符的多少自动选择f格式或e(或E) 格式输出实数,选择是以输出时所需字符数多少为标准。
格式修饰说明有七种,教材只介绍其中四种,它们的意义分别说明如下:
(1)W域宽说明,W是一个十进制整数,表示输出字段的字符数。若转换后需要的字符个数比给出的W多,则以实际需要为准;若转换后需要的字符数比W少,就在左边用填充字符补足(若给出左边对齐标志(-),则在右边补填充字符人通常用空白符作填充字符,若十进制整数W之前有前导0(此0不表示以八进制数给出字段宽度),则以字符0作填充字符。
(2)- 左对齐标志,当转换后字符个数少于W时,在W所限定的字段宽度内,转换所得字符列左对齐,右边补填充符。缺省时,右对齐,左边补填充符。
(3).p,其中p也是十进制整数。
对于g或e格式输出,p指明输出精度(有效数字位数),可以缺省,缺省值依赖于系统的规定(下面的例子设p的缺省值为6)。
对于f格式输出,p指明输出字符列的小数点之后的数字个数,可以缺省。
对于S格式输出,p指明最多输出字符率的前p个字符,多余截断。缺省时,字符串的内容全部输出。
对于d.i、O、u、x和X,表示至少出现的数字个数。
同域宽说明一样,p也可以是字符*,而实际值由后面一个输出项的整数值给出,若该值为负值,相当于没有给出p。
(4) l指明输出项的类型。
长度修饰符l用于格式符d、i、o、u、X,表示对应的输出项是长整型或无符号长整型。