C语言-printf()

  C语言中,数据的输出是通过函数调用来实现的。其中printf()就是用来进行数据输出的函数,printf()是一个格式化输出函数,它是由系统库提供的,如果要使用printf()那么需要在程序前使用编译预处理命令#include <stdio.h>。

1、格式控制说明


指按指定的格式输出的数据,它包含以%开都的格式控制字符,不同类型的数据有不同的格式控制字符。
常用的如下表格:

格式控制字符符号%d%f%s
类型intfloat、double字符串

**注:**printf()函数中,单精度(float)和双精度(double)的浮点数都是用%f。

2. 普通字符


在输出数据时要原样输出的字符。
例:printf(“fahr = %d, celsius = %d\n”, fahr,celsius);
若fahr的值为100,celsius的值为37,那么输出的样式如下:

fahr = 100, celsius = 37

  在上例格式控制字符串中包括格式控制说明(两个%d)和一些普通字符(如等号、逗号和换行符)。输出时,所有的普通字符都被原样输出,在两个%d的位置上,一次输出变量fahr和celsius的值。

3、小数的输出


小数的占位
  printf()函数有格式控制符输出相应的数据,其中整型int是%d,而单精度和双精度浮点型的数据,即float和double类型的数据都是%f,以%f格式输出的小数一般默认有小数点后6位,例如以下代码:

	double x = 2;		
	printf("x = %f\n", x);

在这里插入图片描述
从输出的结果可以发现,保留小数点后6位。而我们可以控制输出小数点位的个数,例如保留小数点后2位,可以使用"%.2f"

	double x = 2;		
	printf("x = %.2f\n", x);

在这里插入图片描述
可以看到输出的结果仅保留了小数点后两位。
即实数型数据的输出格式控制说明一般为:
printf("%m.nf", x);
指定了输出浮点型数据时保留n位小数,且输出宽度是m(包括符号位和小数点)。若数据的实际位数小于m,左端补空格;若大于m,按实际位数输出。
例如:

	double n = 2.674;
	printf("%7.2f\n", n);
   2.67	/*2.674不足7位,前面补了3个空格,加上小数点共7位*/
/*若改为:*/
	printf("%2.2f\n", n);
/*原样输出:*/
2.674 /*2.674超过2位,则原样输出*/

整数的占位
1、格式控制符同样可以控制整数的占位,例如%3d,那么就是整数只占3位,若不足两位前面补空格。如:

int b = 1, a = 12; 
printf("%d%3d%d\n", b, a, b); 

输出结果:

1 12

可以看到输出的数据12前有个空格。如果输出的整数超过3位,那么正常输出。将以上代码改成a=1234,那么输出也是1234
2、如果要想使输出的数据左对齐,那么需要如下形式%-3d,代码如下:

int b = 1, a = 12; 
printf("%d%-3d%d\n", b, a, b);

输出结果:

112 1

此时可以看到12和1之前存在一个空格。
3、如果改成%03d,那么如果不足3位,则会在前面补0;代码结果如下:

int b =1, a = 12; 
printf("%d%03d%d\n", b, a, b);

运行结果:

10121

4、如果是%-03d,那么若不足3位,则不会在后面补0,仍然补的是空格。

int b =1, a = 12; 
printf("%d%-03d%d\n", b, a, b);
112 1

总结:格式控制符里面的数字,小数点前的表示整数占的位数,如%2d代表输出整数位2位,右对齐,不足的前面补空格;小数点后的数字表示小数的保留位数,而-则代表为左对齐,如%-4d,不足的补空格,在数字前加0表示不足的位数前面补0,左对齐时后面仍然是补空格,若超过设置的位数,则正常输出。

例题及课后习题参考程序:https://gitee.com/sgxgitee/mooc-c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值