详解转换说明%-3d、%3d、%nd、%*2d、%0nd、%0.1f、%5.1f、%*d等含义

%m.pX%-m.pX格式  -  这里mp都是整数,X是字母,p若要省去,mp之间的.也要省去。

m - 最小字段宽度,指定了要显示的最少字符数量,如果要显示的数值所需字符少于m,那么值在字段内右对齐(m前加 - 时,是左对齐),多余字符位置放置空格;如果要显示的值所需字符多于m,那么字段宽度会自动扩展为所需尺寸。

p - 精度,很难表述,依赖于转换说明符X的选择。

%d 有符号10进制整数;

%i  有符号10进制整数;

%F/f 浮点数;

%E/e 用科学表示格式的浮点数;

%g 表示指数形式或定点十进制形式的浮点数,形式的选择根据数的大小决定;

%c 单个字符;

%s 字符串;

%o 无符号8进制整数;

%u 无符号10进制整数;

%x 无符号的16进制数字,并以小写abcdef表示;

%X 无符号的16进制数字,并以大写ABCDEF表示;

%d 与 %i 的区别 

 在 printf 格式串中使用时,没有区别。

在 scanf 格式串中使用时,有点区别:

%d 只与十进制形式的整数相匹配;

%i 则可以匹配八进制、十进制、十六进制表示的整数。·

例如: 如果输入的数字有前缀 0(如:022、035),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。

举例解释:

%-3d ——以10进制显示,3表示输出的数字占3个字符的位置,-表示左对齐;

%3d——以10进制显示,3表示输出的数字占3个字符的位置,+或者不写表示右对齐;

%0nd——以10进制显示,表示输出数字不足占用n个字符位置时,左补齐0。

%5.3d——以10进制显示,至少占用5个字符空间,并至少有3位数字(不足补0),右对齐。

%10.3f——以定点十进制形式显示,至少占用10个字符空间(小数点也算占用一个字符空间),小数点后保留三位,右对齐。如:···456.123(这里用·表示空格)

%10.3e——以指数形式显示,至少占用10个字符空间,小数点后保留三位,右对齐。如:456.123表示为·4.561e+02

%5.3s——以字符串显示,至少占用5个字符空间,打印3位字符(字符足够,打印前3个;不足空缺),右对齐

# - 可控制前导显示 

如:

#include

int main()
{
    printf("%o %X\n", 1234,1234);
	printf("%#o %#X\n", 1234,1234);
	return 0;
}

打印结果

* - 丢弃读到的字符

scanf()允许把读取到的数据直接丢弃,不往变量存放,具体方法是在%后加一个*,例如:

%*d - 表示读取一个整数并丢弃;

%*1d - 表示读取1位十进制0-9的整数并丢弃;

%*2d - 表示读取两位十进制0-9的整数并丢弃;

%*nd - 表示读取n位十进制0-9的整数并丢弃;

%*[a-z] - 表示读取小写字母并丢弃;

%[^\n] - 无*,[^\n] 表示非'\n',表示将逐个读取缓冲区中的’\n’字符之前的其它字符;

%*[^\n] - 有*,表示将换行符以外的字符全部丢弃。

  • 87
    点赞
  • 577
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天青i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值