printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。
一、printf函数调用的一般形式
printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。printf函数调用的一般形式为:printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式。 格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位 数等。如“%d”表示按十进制整型输出,“%ld”表示按十进制长整型输出,“%c”表示按字符型输出等。
非格式字符串在输出时原样照印,在显示中起提示作用。 输出表列中给出了各个输出项, 要求格式字符串和各输出项在数量和类型上应该一一对应。
二、格式字符串
格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]转换说明符 其中方括号[]中的项为可选项。各项的意义介绍如下:
1.转换说明符用以表示输出数据的类型,其格式符和意义下表所示:
表示输出类型的格式字符 格式字符意义
c输出单个字符,参数为该字符的ASCII码。
d以十进制形式输出带符号整数(正数不输出符号)
e/E以指数形式输出单、双精度实数,默认6位小数。
f以小数形式输出单、双精度实数,默认6位小数。
g/G以%f%e中较短的输出宽度输出单、双精度实数,如果指数小于-4或大于等于精度(默认6),则使用e/E格式,否则用f格式,末尾多余的0将省略。
i以十进制形式输出带符号整数(正数不输出符号) ,同d
o以八进制形式输出无符号整数(不输出前缀O)
s输出字符串,参数为char指针,显示空字符之前的所有字符或指定数目的数字,不显示末尾的空字符。
u以十进制形式输出无符号整数
x/X以十六进制形式输出无符号整数(不输出前缀OX) ,x输出小写,X输出大写。
2.长度
长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。
3.精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
4.输出最小宽度
用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0。
5.标志
标志字符为-、+、#、空格四种,其意义下表所示:
标志格式字符 标志意义
-结果左对齐,右边填空格
+结果右对齐,对于有符号数,在其左边加上+或-
#只能用于x、X、o,在前面加上0x、0X、o。
空格在正数前加空格
三、转义序列
序列含义
\a振铃
\b回退
\f走纸
\n换行
\r回车
\t水平制表符
\v垂直制表符