
printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>) 。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义 。
printf 函数的声明如下:
format -- 是格式控制字符串,包含了两种类型的对象:普通字符和转换说明 。在输出时,普通字符将原样不动地复制到标准输出,转换说明并不直接输出而是用于控制 printf 中参数的转换和打印。每个转换说明都由一个百分号字符(%)开始,以转换说明结束,从而说明输出数据的类型、宽度、精度等 。
printf 的格式控制字符串 format 中的转换格燥兰说明组成如下,其中 [] 中的部分是可选的:
%[flags][width][.precision][length]specifier,即:%[标志][最小宽度][.精度][类型长度]说明符 。转换说明详解见下文。
附加参数 -- 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,组晚替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的辣邀讲个数相同婆设想鸦。
printf 函数在输出格式 format 的控制下,将其参数进行格式化,并在标准输出设备(显示器、控制台等)上打印出来。
如果函数执行成功,则返回所打印的字符总数,如果函数执行失败,则返回一个负数。
format 转换说明组成是%[flags][width][.precision][length]specifier ,具体讲解如下:
说明符(specifier)
说明符(specifier)用于规定输出数据的类型,含义如下:
u
x / X
f / lf
e / E
g
G
c
s
p
%
不进行转换,输出字符‘%’(百分号)本身
示例代码:
flags(标志)
标志(flags)用于规定输出样式,含义如下:
强制在结果之前显示加号或减号(+ 或 -),即正数前面会显示 + 号;
默认情况下,只有负数前面会显示一个 - 号
specifier 是 e、E、f、g、G 时,一定使用小数点;
specifier 是 g、G 时,尾部的 0 保留
示例代码:
width(最小宽度)
最小宽度(width)用于控制显示字段的宽度,取值和含义如下:
示例代码:
.precision(精度)
精度(.precision)用于指定输出精度,取值和含义如下:
示例代码:
length(类型长度)
类型长度(length)用于控制待输出数据的数据类型长度,取值和含义如下:
示例代码:
转义序列在字符串中会被自动转换为相应的特殊字符。printf() 使用的常见转义字符如下:
示例代码:
printf 函数的返回值为其输出字符串常量的字符数(注意字符数与字数的区别),注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符)。
有时printf 语句会很长,以至于不能在一行被放下,如果我们必须分割一个字符串,有以下三种方式可以选择。需要注意的是,我们可以在字符串中使用 "\n" 换行符来表示换行字符,但是在字符串中不能通过回车键来产生实际的换行字符。
示例代码:
相关文章推荐:
输出设备 | 转义字符 | 输出设备 | stdio.h | 格式化 | 整数 | 八进制 | 十进制 | 十六进制 | 浮点数 | 科学计数法 | 字符 | ASCII码 | 字符串 | 指针 |