函数printf()的多种用法和技巧


printf函数是一种简单又基础的函数,可以说在刚开始学习编程时便认识它了,但它也有着一些很有趣的用法不知道大家是否知道。除了指定输出类型,它也可以限定最小宽度和小数位数、打印部分字符串。

1.用占位符指定输出类型

(1)printf()指定类型的方法

printf函数中用占位符指定输出类型应该是最常用的功能之一了。

在指定类型时占位符通常以 %开头,后面加上字符来指定要输出的类型。占位符整体用双引号括起,比如printf("%d", 打印的内容),输出的便是十进制整数。

(2)占位符列举

以下是几个常见的占位符及其对应的数据类型:

%d:十进制整数
%f:浮点数
%c:字符
%s:字符串

其余还有:(按字母排序)
%a: 十六进制浮点数,字母输出为小写
%A: 十六进制浮点数,字母输出为大写
%e: 使用科学计数法的浮点数,指数的e为小写
%E: 使用科学计数法的浮点数,指数的E为大写
%i: 输出整数,基本等同于%d
%g: 6个有效数字的浮点数,整数部分一旦超过6位数,自动转换为科学计数法,指数的e为小写
%G: 与%g相似,但指数的E为大写
%hd:十进制 short int 类型
%ho:八进制 short int 类型
%hx:十六进制 short int 类型
%hu:unsigned short int 类型
%ld:十进制 long int 类型
%lo:八进制 long int 类型
%lx:十六进制 long int 类型
%lu:unsigned long int 类型
%p:打印十六进制的地址

2.可限定占位符的最小宽度

想限定输出数据的最小宽度,只要在占位符前添加想要的最小宽度就行了。

(方式一)空在前面

直接在%后添加正整数

比如printf("%5d", 123),意思便是限定最小宽度为5位数,如果整数位数不足五位数,在最高位前面添加空格补全五位数。输出结果:_ _ 123(这里用下划线表示空格)

(方式二)空在后面

%后添加负整数

比如printf("%-5d", 123),同样是限定最小宽度为5位数,但在整数位数不足五位数时是从最低位开始添加空格补全五位数。输出结果:123 _ _

3.输出字符串常量

在 printf 函数中,我们可以直接打印出想要的字符串常量,打印时字符串常量需要用双引号括起。比如printf("hello word")
hello word

4.总显示正负号

这是printf()的一个特点,它可以打印出具有正负号的数字,打印时默认为整数,正号省略不写。(即使加上正号也不会打印出来)
请添加图片描述

6.可限定小数位数

【1】限定小数位数

打印浮点数时可以限定浮点数的小数位数,小数位数多则四舍五入舍去,少则补零。

具体写法为在%.加想要的小数位数。比如printf("%.3fn", 3.1415926),就是小数位后取三位小数。

(1)舍去示例:
请添加图片描述

(2)补零示例:
请添加图片描述

【2】关于"."的符号的讲解

如果我们想既限定最小宽度,又想限定小数位数那该怎么办呢?如果同样是在%后添加数字无疑就很容易弄混淆。这是.的作用就显得至关重要了。

限定小数位数时.的作用便是将限定最小宽度和小数位数的数字隔离开。在.前写最小宽度,在后面写小数位数。

比如printf("%5.2fd", 3.1415)的输出结果便是:_ 3.14 (小数点也占一个宽度)

请添加图片描述

其实可以认为最小宽度默认为零,只是不显示。所以在之嫌定小数位数时也依旧需要写.

7.只打印部分字符串

如果一个字符串很长,你只需要其中一部分,printf() 也可以只打印出其中一部分。

比如在字符串“abcdef”中我只需要“abc”,那我就可以写printf("%.3s", "abcdef")。写法与限定小数位数的写法相似,只是将输出类型从整形变成了字符串。

输出结果是:
请添加图片描述

结语

以上便是本文的全部内容,如有错误或改进之处也欢迎留言给作者,感谢观看。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值