【C语言】printf() 标题:C语言库函数printf()解读 水墨不写bug
(图片来源于网络) 目录 (一)printf头文件解读 (二)printf基本用法 (1)占位符 i,占位符的类型(按字母顺序) (2)printf的输出宽度 i,printf可限定占位符的最小宽度: ii,浮点型,小数点也占用一个宽度 (3)printf的保留精度 (4)printf输出总是保留正负号 (5)浮点输出函数化 (6)输出部分字符串 (一)printf头文件解读 我们知道 printf函数的头文件是 <stdio.h> ,但是这个标志到底代表什么呢? 通过查阅C++参考网站,我们发现:
(图片来源cplusplus.com) printf函数的头文件的名称就是标准输入输出的缩写(Standard Input and Output),后面的.h表示header,即头文件的缩写。 其实 stdio.h 这个函数库里的 部分 其他函数,与输入输出 都或多或少有联系:
(图片来源cplusplus.com) 这其中的一些函数我们十分熟悉,这就留到以后再给大家分享了。 (二)printf基本用法 printf中的 f (format 格式化),大致表明了printf函数的作用——将参数文本输出到屏幕,并且可以定制输出文本的格式。 (e.g.1) 运行结果:
我们可以在“ ”内输入任意可打印字符,printf可按照我们规定的格式输出,需要注意的是,printf不会在行尾自动添加换行符,打印完毕后,光标停在最后一个字符末尾。 在e.g.1中出现了一个陌生的符号——%d,它其实是一种占位符。 (1)占位符 在使用printf时,我们会频繁使用占位符。 “占位符”,顾名思义,就是这个位置可以由其他值代入。 如果printf共使用了n个占位符,则此printf函数共有n+1个参数(它们以英文逗号隔开),第一个参数是“ ”里的内容,“ ”里可有占位符,但后面的参数需要一一对应。 e.g.1中的 “%d” 的位置就被 整数“6”替代。占位符的第一个字符一律是%,第二个字符表示占位符的类型,d 就代表这里代入的数必须是一个整数。 i,占位符的类型(按字母顺序) %a:十六进制浮点数,字母输出为小写 %A:同上,字母输出为大写 %c:字符 %d:十进制整数 %e:科学计数法的浮点数,指数部分e为小写 %E:同上,指数部分E为大写 %i:整数,基本等同于%d %f:通常打印float,也可打印double,但会发生截断,若精度要求高,则不建议 %g:6位有效数字的浮点数,整数部分超过6位,自动转化为科学计数法,指数部分e为小写 (同时会损失部分精度)
%hd:十进制short int 类型 %ho:八进制short int 类型 %hx:十六进制short int 类型 %hu:unsigned short int 类型 %ld:十进制long int 类型 %lo:八进制long int 类型 %lx:十六进制lon int 类型 %lu:unsign long int 类型 %lld:十进制long long int 类型 %llo:八进制long long int 类型 %llx:十六进制long long int 类型 %llu:unsigned long long int 类型 %le:科学计数法表示long double 类型浮点数 %lf:double类型 long double类型 %o:八进制整数 %p:指针(地址) %s:字符串 f1a;unsigned int类型 %x:十六进制整数 %zd:size_t类型 %%:输出一个百分号 (内容来源:cpusplus.com) 红色标注为常用类型,其他的了解就行。 (2)printf的输出宽度 i,printf可限定占位符的最小宽度: e.g.2
上述%6d ,表示这个占位符的宽度至少为5位,如果不满5位,默认右对齐,缺少的位上补上空格。 如果希望左对齐,空格统一放在右边,则加一个“-”,即%-6d。 ii,浮点型,小数点也占用一个宽度
总之,若规定printf打印长度是12,那么结果不满12个字符,则用空格补齐成12个字符,若结果超过12个字符,则打印真实结果,同时不违背小数部分保留6位。 如图:
也就是说:如果整数位+6个小数位超过12位,则打印真实结果。 (3)printf的保留精度 printf输出浮点数时,想要限定小数位数: 如果想要只保留整数位,则为:%.0f; (在这种情况下,如果结果的值 > 0.5,最终打印输出为 1 ;如果结果的值 <= 0.5 ,最终打印输出为 0 ;) 如图:
结果如图:
但是如果超过float型的精度范围,就是结果超过0.5 ,也无法被识别 ,因此打印结果仍然是0;
结果:
如保留两位小数,可写为%.2f ; 如保留三位小数,可写为%.3f; 这种写法 可以与上文讲解的 限定宽度 结合使用,这里我就不给出例子了,大家也自己动手试一试,印象更深刻。 (4)printf输出总是保留正负号 默认情况下,printf不显示+号,只显示-号,若想不论正负,总是显示结果的符号 则在占位符%后加上一个“+”号。 如图:
(5)浮点输出函数化 printf输出浮点型时,最小宽度和小数位数这两个限定值,都可用 * 代替,通过printf函数的参数传入:
实际上, 输出宽度的 参数位置 可以是一个函数的返回值 ! 小数位数的 参数位置 也可以是一个函数的返回值! 这也就奠定了printf根据要输出的数据需要来控制输出格式奠定了基础! 这样来看,printf函数的功能是不是强大起来了呢? 读到这里,不妨打开编译器试一试,将函数返回值作为参数来玩转printf函数!!!
最后的最后,还有printf函数的另一个功能: (6)输出部分字符串 %s占位符用来输出字符串,如果想要输出规定长度的字符串,比如5个字符的字符串,可以表示为——%.5s,其中 “5”的位置可以是任意的正整数:
以上就是printf函数的基本功能了,希望这些总结与经验能对你有做帮助。 如果本文确实让你眼前一亮,请不要忘了支持哦~
未经作者同意禁止转载-
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/68150.html