如果你想输出由静态文本和一个或多个变量中存储的动态信息组成的混合产物那么printf()语句再理想不过了。之所以说它很理想,有两个原因。首先,它将静态数据和动态数据清晰地分至两个不同的部分,从而可以轻松的维护。其次,通过printf(),我们有充分的控制权来决定如何将动态信息显示在屏幕上,包括类型、精度、对齐方式和位置。
printf("这里有%d瓶水。",100);
执行这个命令会输出:这里有100瓶水。
在这个例子里,%d是一个称为类指示符的占位符,d指示将在这个位置上放置一个整数值。执行这个语句非时候,参数100将插入占位符的位置。一直记住需要一个整数,所以如果传人一个包含小数值的数,这个数将向下取整为最接近非整数。如果传人100.2或100.6,就会输出100。如果传人一个字符串,则会输出0。这一点同样适用于其他类型的指示符。
常用的类型指示符
类型 描述
%b 将参数认为是一个整数,显示为二进制
%c 将参数认为是一个整数,显示为对应非ASCII字符
%d 将参数认为是一个整数,显示为有符号的十进制数
%f 将参数认为是一个浮点数,显示为浮数
%o 将参数认为是一个整数,显示为八进制
%s 将参数认为是字符串,显示为字符串
%u 将参数认为是一个整数,显示为无符号的十进制数
%x 将参数认为是一个整数,显示为小写的十六进制数
%y 将参数认为是一个整数,显示为大写的十六进制数
那么如果想传人两个值,只需向字符串插入两个指示符,并确保将两个值作为参数传入。例如:
printf("%d瓶水花费¥%f",100,43.20);
执行这个命令输出:100瓶水花费¥43.20。
处理小数值时,可以使用一个精度指示符来调整精度。以下是一个例子:
printf("%.2f",43.2);
以上输出:43.20
还有一些指示符可以用来调整参数的对齐方式、填充字符、正负号和宽度。