本篇内容介绍了“C语言printf()输出格式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
C语言printf()输出格式
主要说明格式字符串的基本思想。
格式字符串纲要
[标志] [输出最少宽度] [.精度] [长度] 类型 \fcolorbox{#ffae42}{#2E8B57}{\textcolor{White}{[标志]\;[输出最少宽度]\;[.精度]\;[长度]\;类型}} [标志][输出最少宽度][.精度][长度]类型
因为权重是自右向左,所以先从右侧往左介绍,有时这个很重要,比如字符类型进行修饰总让人很疑惑。
类型称为转换类型更合适;
长度 : 并非确切长度,它仅仅是修饰符,h代表短型,l代表长型,如果用ll虽然也可以,但目前很多编译器已经开始提示用其它替代方案;
[.精度] : 浮点型小数位数未指定精度时,隐含的精度为6位。如果是字符串,只取字符串中左端设置精度数 字符(n个字符,精度为n);
输出最少宽度 : 如果实际长度低于设置,那么填充就起作用;
标志的功能主要是是对齐填充补充 ,主要为左对齐(-) 、右对齐(省略既是右对齐,字符串类型可以用+)、 补充(#)、空格(若符号为正,则显示空格,负则显示"-")、填充(0);
类型
转换说明A | 备注 | 转换说明B | 备注 |
---|---|---|---|
%d或%i | 有符号十进制整数 | %u | 无符号十进制整数 |
%f | 浮点数(包括float和doulbe) | %e(%E) | 浮点数[e-(E-)记数法] |
%g(%G) | 浮点数不显无意义的零"0",甚至小数点 | ||
%c | 字符,实际上是int,可以用%d打印 | %s | 字符串 |
%x(%X) | 十六进制无符号整数 | %o | 八进制无符号整数 |
%a(%A) | 浮点数、十六进制数字和p-(P-)记数法(C99),p代表2,类似于e代表10 | ||
%p | 指针 | %% | 百分号自身输出 |
长度
h 代表short,一般用%hd
l 代表long,可以修饰%ld 、%lu、 %lf、%lo,修饰%lc,因为c存储的是int型,可以用l修饰,但权重自右向左,还是会输出字符,而不是数字。
ll 代表long long,目前很多编译器已经不太推荐用ll修饰了,他们有专业的推荐。
%zd专门为sizeof strlen() 等size_t 返回类型准备的格式。
精度
采用一段代码说明更实际
//加上F防止隐性转化,因为代码风格中用小写字母l会被误认为数字1,所以统一采用大写的L、F float PI = 3.1415F; //先优先精度(.14)这就占了三位,在向左设置显示宽度,没有设置对齐方式,那么默认右侧对齐左侧填充, //左侧填充没有设置,那么填充空格,所以显示 □□3.14 printf("%6.2f\n", PI); //设置为0会被四舍五入,显示3 printf("%.0f\n", PI);
输出最少宽度
//没有设置精度,位数不够左侧填充空格,如果设置为%05d则填充0,如果设置左对齐,也不可能右侧填充0 //如果是字符串填充0是无效的,只填充空格 printf("%5d \n", d);
标志
-
: 左对齐省略既是右对齐,字符串可以用+
0 : 填充0,只限于左侧填充
#
: 对c,s,d,u类无影响;对o类,加前缀数字0;对x类,加前缀0x;对X类,加前缀0X;对e,g,f 类当结果有小数时才给出小数点。空格 : 若符号为正,则显示空格,负则显示"-"
%#o,%#x这样使用是合理的,如果在e,g,f中使用#,没有设置精度,那么因为数据不同显示可长可短,所以基本作为补充前缀使用。
补充和填充是有区别的,#
并不是Excel中格式设置的那些作用。
“C语言printf()输出格式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!