码迷,mamicode.com
首页 > 其他好文 > 详细

printf的用法进阶

时间:2020-02-12 20:29:08      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:十六进制   简单   中间   数字   十进制   小白   就会   常用   测试   

今天来好好总结一下C语言中关于printf的常用用法

基础部分

printf("%d\n", numInt);

技术图片

printf("%f\n", numFloat);

技术图片

printf("%c\n", aChar);

技术图片

printf("%s\n", str);

技术图片

这些都过于简单,我就不细述了!


进阶部分


printf("%o\n", num);

?在这个语句中,%o 表示的意思是以八进制输出 num 这个数!如下图:
技术图片

printf("%x\n", num);

?同 %o 差不多,%x 表示以十六进制输出 num 这个数字!如下图:
技术图片
?怎么样,有了这两个用法是不是加强了八进制、十进制和十六进制之间的关系呢?
当然,我要介绍的还不止这些!
下面再说说占位方面的那些事吧!

printf("%10d\n", numInt);

?在%d的中间加入一个数字 10 表示什么意思呢?先让我们看看这张图:
技术图片
?显然,我们的数字 16 似乎跑到后面去了呢!
哈哈~这就是这个数字 10 的作用!当我们在%和d之间加一个数,这个数就会被用来表示位宽(数字本身所占位宽也被计算在内)!
那我想在这个数的后面补位怎么办?简单,直接在10前面加上一个-即可!
printf("%-10d\n", numInt);就表示在数字后面补位!
技术图片
?其实,这种用法更常见的是在小数类型中!下面让我们一起看看这个语句吧!

printf("%6.4f\n", numFloat);

?这个语句是什么意思呢?先解说一下,这个6.4不是简单当作一个数来看待的哦!这个6表示保留5位有效数字(为什么是5?因为小数点也会占一位啊!), .4表示保留四位小数!如下图:
技术图片
?那要我输入的不是6,而是一个更大的数,大到超过了这个小数的整体位宽怎么办?不用怕!他会和%10d的效果一样,自动在这个数的前面补齐所需占位!如下图:
技术图片
?同样的,-号表示在这个数的后面补位!
?但要是 4 这个数过大怎么办?额~用 0 补齐呗...如下图:
技术图片
?不过还有个问题,要是我们的这个数的位宽在变化怎么办?不写.前面的数字呗~
?那要是我想写怎么办?

?既然你诚心诚意的发问了,那我就(啪!~つ﹏?)...

printf("%*.4f\n", numInt, numFloat);

?这个语句就可以完美的解决这个问题!%*就表示占numInt位!如下图:
技术图片

printf的返回值

?最后一个小白们都很关心的问题,那就是printf的返回值到底是什么?其实,printf的返回值是一个整数类型的数字,是打印的字符个数,而并非几个数字、几个字符。和位宽的概念一致,如下图:
技术图片

?更多的细节,大家可以自己上机自己测试哦!

printf的用法进阶

标签:十六进制   简单   中间   数字   十进制   小白   就会   常用   测试   

原文地址:https://www.cnblogs.com/seafever/p/12300576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!