C语言格式化输出

1.格式控制符形式
% [{+,-}] [o] [{m,m.n}] [{l,h}] <格式控制符>

其中,中括号[]里的内容是可选的,<>里的内容是必须的。以下对各个标志的含义简要介绍:

%:表示格式控制的起始符号,必不可少。–格式控制起始位置

+/-:表示对齐标志,+表示右对齐,-表示左对其,缺省情况下为右对齐。–对齐标志

o:表示当实际长度没有格式控制的长度大时,用“o”补全。–补全内容

m/m.n:其中,m表示输出所占位宽,n表示实际取标识符的多少位输出–占位长度

l/h:l对整型指long型,对实型指double型;h用于将整型字符修正为short型

<>:格式控制符

1.1格式控制符
%d:用于输出整型数(整型指本质为整型的数,如int、short等)

%c:用于输出一个字符

%s:用于输出一个字符串

%o:以无符号八进制形式输出整数值

%x:以无符号十六进制形式输出整数值

%u:以无符号形式输出十进制数

%f:用来输出浮点数(float),精度为6位小数,第七位四舍五入。

%p:指针的值

1.2占位长度与格式控制符搭配输出
1.2.1 占位长度与%d搭配
%md:m为指定的输出数据的位宽。如果数据的位数小于m,则左端补以空格(因为默认右对齐,所以左补用以占位);如果数据的位数大于m,则以数据的实际位数输出。示例如下:
在这里插入图片描述

1.2.2 占位长度与%c搭配
一般无此搭配方式。

1.2.3 占位长度与%s搭配
%ms:m为指定的输出字符串的宽度。如果字符串的位数小于m,则左端补空格;如果字符串的位数大于m,则以实际的字符串长度输出。实例如下:
在这里插入图片描述

%m.ns:意为从左向右截取字符串的n位输出到占位m的位置,左补空。设字符串实际长度为len,则具体表现形式如下:
在这里插入图片描述
1.若n<len

截取字符串前n个字符,然后做如下判断:

若m<n:则输出n个字符

若m>n:则输出m个字符,左补空

在这里插入图片描述
2.若n>len

取字符串的实际(长度len)字符,然后做如下判断:

若m<len:则输出len个字符

若m>len:则输出m个字符,左补空格

在这里插入图片描述
1.2.4 占位长度与%f搭配
%m.nf:m为占位宽度,n为小数点右边的位数,浮点数的规则较字符串比起来更为复杂些,你不但要关注浮点数的总占位宽,还要关注小数的占位宽。小数部分的精度为lenDot,下面分整数位数与小数位数简要分析下:

1.2.4.1小数部分:
由于浮点数float的精度为6(即lenDot=6)。算小数部分原则:

(1)首先根据浮点数的实际精度得出近似值,原则为:

若浮点数的实际小数位长大于6,则截取6位,第七位四舍五入;若浮点数的实际小数位数小于6,则后补0。如1.23转换成1.230000;1.23456789转换成1.234568

(2)根据上步中的结果值,从中截取n位长。注意:n一般小于或等于6,因为超过6位的数据不真实。

1.2.4.2整数部分:
整数部分完整输出,唯一要注意的是:

当m>(整数位宽+小数点位宽+n)时,左补空。

1.2.4.3示例如下:
在这里插入图片描述
1.2.4.4建议
一般不对浮点数float输出大于6位的小数,因为大于6位后的数据已经在浮点精度之外了,是不正确的数据。

1.3补全内容与占位长度、控制符的搭配输出
当标识符的占位长度大于实际的长度时,在多出的位置处用补全内容填充。补全内容默认为空,可以显式指定补全内容为0。实例如下:

1.4对齐标志
对齐标志有两种:+和-,其中缺省为+。+表示右对齐,-表示左对齐。对齐标志要相对简单、更好理解,所以不细讲,直接举例验证,如下:

左对齐:

在这里插入图片描述

右对齐:
在这里插入图片描述

  • 14
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值