特殊打印字符 %x.yd 、%x.yf、%x.ys、%x.ye、%*、%#x

常见打印字符:

我们往往会遇到特殊的打印字符,如 : %4d 、%.2f 、%.3s 、%.2e,那么这些字符的打印形式又是什么呢?      欲知后事如何,点赞关注一波,咱们继续下文!

%x.yd 形式:

例:

printf("%3d",10) 

此代码表示将 整数10以 字段宽度为3 的形式 打印,不足则以空格填充.

结果如下:

由于10只占2个字段宽度。所以多的字段会自动用空格补充。我们可以通过%03d来用0替换掉空格

printf("%03d",10)  将 整数10以 字段宽度为3位的形式 打印,不足则以 0填充.

结果如下:

例: 打印一个字段宽度为6最少有4位数字的十进制数.

字段宽度我们已经知道,此时要求至少有4位数字打印该怎么办? ,此时 %.yd 可以解决这个问题

printf("%6.4d",1000); 将整数1000以 字段宽度为6位 最少有4位数字的形式 打印, 不足则以 空格 填充.结果如下:

若数据的位数不足4位,则会自动往前补0,来达到四位数字,如 printf("%6.4d", 10); 结果如下:

做总结:  %x.yd ( x控制字段宽度 , y控制数据有效位数)

%x.yf形式:

%x.yf 其中 x同 %x.yd 中的 x作用相同,都是来控制字段宽度,我们就不与重复

例: 将 1.234 保留两位小数 打印。我们通过 .2f 来控制保留小数位数

printf("%.2f",1.234);

 结果:   

注意: 在进行保留小数位的操作时 会 自动进行四舍五入的操作

如: 下列代码会保留两位小数,系统会自动进行四舍五入操作

printf("%.2f", 1.235);

结果:   

我们可以通过这个特性来实现进位操作.

做总结:  %x.yf ( x控制字段宽度 , y控制保留位数)

%x.ys形式:

%x.ys 其中 x同 %x.yd 中的 x作用相同,都是来控制字段宽度,我们就不与重复

例: 打印一个字段宽度为7,左对齐的字符串中的前5个字符

字段宽度为7,我们可以 %7s 来限制, 而要取前五个字符则要通过 %.5s

左对齐就是在 '%'后面加 ' - ', 默认右对齐('+'表示右对齐),' - '表示左对齐

我们将多余的字段以 0填充,可以更加直观的看到效果,代码如下:

char hel[10]="hellocsdn";
printf("%07.5s",hel);

结果:     

首先取前 5个字符( hello ),发现字段多余,以0填充,故结果 为 00hello

做总结:  %x.yf ( x控制字段宽度 , y控制取字符串前指定位数)

%x.ye形式:

首先了解 %e,表示以科学计数法表示。 %e的格式如下:

%xe 不用说了,懂得都懂(控制字段宽度) , 而 %.ye 中的 y也和 %y.f 中的y作用相同,用来控制小数位数。 如下代码:  将1000.3以科学计数法表示并保留两位小数

printf("%.2e", 1000.3);

结果:     

做总结:  %x.ye ( x控制字段宽度 , y控制取保留小数位数)

%*形式:

%*无参时:

当输入数据为字符串和整型数据时,若想忽略字符串,只取整形部分时,采用 %*,如下代码:

int a;
char b[10];
scanf("%*s %d", &a);
printf("%s %d",b,a);

结果:   %*s 忽略输入的字符串 

可以看到输入的 awf 没有被读取,而后面输入的 10被读取成功。

%*有参时:

我们可以传入参数*来控制 字段宽度,如下列代码:

char arr[40] = "abcdef";
printf("%0*s", 15,arr);

传入 *的值,控制 打印结果 为 15个字段宽度,不足用 0填充。结果如下:

做总结:  %*  ( 忽略指定输入)

%#x形式:

%x表示以十六进制表示(字母用小写表示)      %x表示以十六进制表示(字母用大写表示)

如以下代码:

int a = 220;
printf("%x\n", a);//dc
printf("%X\n", a);//DC

打印结果为:  

如果想要以 0x 的形式打印,则在 '%' 后面加 '#'即可,代码如下:

int a = 220;
printf("%#x\n", a);//0xdc
printf("%#X\n", a);//0XDC

结果为: 

以上就是本博客所有内容,创作不易,希望多多支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值