printf函数
printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>) 。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。(来源:百度百科)
1.函数原型:
int printf(const char *format,...);
将由format指向的C字符串写入标准输出(stdout)。如果format包含格式说明符(以%开头的子序列),则格式化format之后的其他参数并将其插入到结果字符串中,以替换它们各自的说明符。
1.1参数
包含两种类型的对象:普通字符和转义说明。
format是包含要写入标准输出的文本的C字符串,可以选择性的包含嵌入的格式说明符,这些格式说明符由后续附加参数中指定的值替换,并按要求进行格式化。
格式说明符遵循原理:
%[flags][width][.precision][length]specifier
即:%[标志][最小宽度][.精度][类型长度]转换说明符
其中末尾的specifier(说明符)字符是最重要的组成部分,因为它定义了类型及其对应实参的解释。
1.1.1转义说明符(specifier)
转义说明符表
注:转换说明符又被称为 格式控制符、格式占位符、占位符等,不同的名字所代表的含义是相同的。
1.1.2标志(flags)
标志(flags)用于规定输出样式,含义如下:
1.1.3最小宽度(width)
最小宽度(width)用于控制显示字段的宽度,用十进制整数来表示输出的最少位数。若实际位数多于指定的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
取值和含义如下:
#include<stdio.h> int main() { printf("%05d\n",7);//宽度为5用0占位 return 0; }
1.1.4精度(.precision)
精度(.precision)用于指定输出精度,以“.”开头,后跟十进制整数。
取值和含义如下:
1.1.5类型长度(length)
类型长度(length)用于控制待输出整型数据的数据类型长度。
取值和含义如下:
2.例题
2.1
用printf的格式化打印如下“效果”及计算结果
#include<stdio.h> int main() { printf("%7d*%-7.1f=%f\n",3,0.7,3*0.7); printf("%7.1f*%-7.1f=%f\n",3.3,6.7,3.3*6.7); printf("%7.2f*%-7.2f=%f\n",3.33,66.7,3.33*66.7); //...... return 0; }