首页 理论教育 C语言程序设计-格式输出函数printf()

C语言程序设计-格式输出函数printf()

时间:2023-11-23 理论教育 版权反馈
【摘要】:printf函数的一般格式为:printf例如:printf。例如,上面printf()中的“%d”表示按十进制整型输出,“%c”表示按字符型输出。第三条输出语句“printf;”,以4种格式输出双精度变量c的值。下面以程序li2_3_3为例详细说明如何利用printf()输出字符型数据。

C语言程序设计-格式输出函数printf()

1.printf函数

格式输出函数printf()是向终端输出若干个任意类型的数据,相对于putchar函数(只能输出一个字符)而言,它的功能非常强大。printf函数的一般格式为:

printf("格式控制字符串",输出表列)

例如:printf(“%d,%c\n”,c1,c2)。

格式说明:

(1)该函数的功能是按照“格式控制字符串”指定的格式,输出“输出表列”中的内容。

(2)格式控制字符串是用双引号括起来的字符串,也称为转换控制字符串,它包括两种类型,即格式说明和普通字符。格式说明是由%和各种格式字符组成,它的作用是将输出的数据转换为指定的格式输出。例如,上面printf()中的“%d”表示按十进制整型输出,“%c”表示按字符型输出。普通字符是除格式说明以外的其他字符,照原样输出,在显示中起提示作用。例如,上面printf()中的“,”,转义字符也属于普通字符,根据其表示的字符进行输出,如\n表示换行,\”表示”。

(3)输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。例如,上面printf()中的c1按%d输出,c2按%c输出。

2.格式控制字符串

格式控制字符串是printf()函数的关键参数,用于描述数据输出的格式,由一些格式字符和非格式字符组成,其一般格式为:

%[标志][最小宽度][.精度][长度]类型符

格式说明:

(1)方括号[]中的项为可选项,根据实际要求选择使用。

(2)格式控制字符串要以“%”开头。

表2-4标志及意义

(3)最小宽度:用十进制整数表示输出内容的最少位数。若实际位数多于最小宽度,则按实际位数输出,若实际位数少于最小宽度则补以空格或0。

(4)精度:以“.”开头,后跟十进制整数,表示小数的位数。若实际位数大于所给出的精度数,则截去超过的部分。

(5)长度:有h、l两种,h表示按短整型输出,l表示按长整型或扩展双精度输出。(www.xing528.com)

表2-5 类型符及意义

  下面以程序li2_3_2为例详细说明如何利用printf()输出数值型数据。

【例2-8】程序li2_3_2。

【程序说明】

(1)第一条输出语句“printf("a=%d,%5d,%-5d,%o,%X\n",a,a,a,a,a);”,以5种格式输出整型变量a的值,其中“%5d”要求输出宽度为5,右对齐,而a值为12只有两2位,所以左补3个空格。“%-5d”则是左对齐,右补空格。“14”是变量a的八进制表示,而“C”是12的十六进制表示。

(2)第二条输出语句“printf("b=%d,%ld\n",b,b);”,以2种格式输出长整型变量b的值。其中“%d”和“%ld”格式的输出相同,说明“l”对长整型数据输出没有影响。

(3)第三条输出语句“printf("c=%f,%lf,%5.4lf,%e\n",c,c,c,c);”,以4种格式输出双精度变量c的值。其中“%f”和“%lf”格式的输出相同,说明“l”双精度数据输出没影响。另外,由于“%f,%lf”未指定输出宽度和精度,前两个c值的输出只有6位小数,而且最后一位小数无实际意义。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。“%e”表示要按指数格式输出变量c的值。

(4)第四条输出语句“printf("d=%lf,%.3f,%8.4lf\n",d,d,d);”,以3种格式输出双精度实数d,“%.3f”指定保留3位小数,“%8.4lf”由于指定精度为4位,所以截去了超过4位的部分,最后一位小数按“四舍五入”的方式保留。

下面以程序li2_3_3为例详细说明如何利用printf()输出字符型数据。

【例2-9】程序li2_3_3。

【程序说明】

(1)第一条输出语句中“%-3c”和“%3c”分别是左对齐和右对齐输出单个字符'a'。

(2)第二条输出语句,根据格式“%m.ns”,输出的字符串总共占m列,但只取字符串中左端的n个字符,如果m<n,则取m=n,以保证n个字符的正常输出。因此以“%3s”的格式输出字符串“CHINA”时,因为指定的宽度小于字符串的实际宽度,此时按照字符串的实际宽度输出;以“%7.2s”的格式输出字符串“CHINA”时,只输出“CH”,且右对齐,左补空格;以“%-5.3s”的格式输出字符串“CHINA”时,只输出“CHI”,左对齐,右补空格;以“%.4s”的格式输出字符串“CHINA”时,取字符串的左边4个字符输出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈