printf函数(格式输出函数)
printf函数,它的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据(printf可以输出多个数据,且为任意类型)。
1.printf函数的一般格式为
printf(格式控制,输出表列)
如:printf("%d,%c\n",i,c)
括弧内包括两部分:
(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
①格式说明,由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。
②普通字符,即需要原样输出的字符。例如上面printf函数中双撇号内的逗号、空格和换行符。
(2)“输出表列”是需要输出的一些数据,可以是表达式。下面是一个例子:
printr("%d %d",n,b);
格式说明 输出表列
printf(“a= %d b=%d",a,b);
格式说明 输出表列
在上面双撇号中的字符除了“%d”和“%d”以外,还有非格式说明的普通字符,它们按原样输出。如果a、b的值分别为3、4,则输出为
a=3 b=4
其中有下划线的字符是printf函数中的“格式控制”字符串中的普通字符按原样输出的结果。3和4是a和b的值(注意3和4无前导空格和尾随空格),其数字位数由a、b值而定。假如a=12 b=123,则输出结果为
a=12 b=123
由于printf是函数,因此,“格式控制”字符串和“输出表列”实际上都是函数的参数。 printf函数的一般形式可以表示为
printf(参数1,参数2,参数3……参数n)
printf函数的功能是将参数2~参数n按参数1给定的格式输出。
2. 格式字符
对不同类型的数据用不同的格式字符。常用的有以下几种格式字符:
- d格式符。用来输出十进制整数。有以下几种用法:
- %d,按整型数据的实际长度输出。
- %md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。如
printf("%4d,%4d",a,b);
若a=123,d=12345,则输出结果为 123,12345
- %ld,输出长整型数据。如
long a=135790; printf("%ld",a);
如果用%d输出,就会发生错误,因为整型数据的范围为-32768~32767。对long型数据应当用%ld格式输出。对长整型数据也可以指定字段宽度,如将上面 printf 函数中的“%Id”改为“%8ld”、则输出为:
135790
8列
一个int型数据可以用%d或%ld格式输出。
(2)o格式符,以八进制数形式输出整数。由于是将内存单元中的各位的值(或1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如:
Int a=-1;
printí(" %d,%o”,a,a);
-1在内存单元中的存放形式(以补码形式存放)如下:
1 |