牛客——BC14 出生日期输入输出

本文详细解释了如何在C语言中使用scanf函数的%m格式指定输入域宽以及printf函数的%0格式控制输出时的填充规则,包括最小字节宽度、精度、长度指示符和转换操作的用法。
摘要由CSDN通过智能技术生成
#include <stdio.h>

int main() {

    int a=0,b=0,c=0;
    scanf("%4d%2d%2d",&a,&b,&c);
    printf("year=%d\n",a);
    printf("month=%02d\n",b);
    printf("date=%02d",c);

    
    return 0;
}

所用知识点:

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

转换规则(转自牛客网评论):

scanf内的%4d中间的4表示最小字段宽度,%4d表示取出4个数存入int类型。

而printf中%02d中的0表示输出时候不满最小字节宽度,自动补0,而那个2就是最小字节宽度了。

%d:

他的组成是%(标志)(最小字节宽度)(精度)(长度指示符)(转换操作)组成。

标志:

        -、+、#、0。-表示输出的向左看齐,+表示输出始终带正负,#表示输出十六进制的时候带0x、八进制的时候带0,0表示不满最小字节宽度的时候把空格填充物换成0。

最小字节宽度:

        就是输出的最小位数,不满最小字节宽度时补空格到指定宽度,满出则不进行操作,使用时只需要在指定位置输入正整数如题目里%4d内的4。

精度:

这个我前面的题解有说到,写法是.x,点表示小数后的精度,x表示精确到小数后几位。

长度指示符:

这个之前的题解也有说道,分别是hh、h、l、ll四个等级。

转换操作:

也就是我们常用的那个,d表示转换成int类型,c表示char字符类型,s表示字符串,e\E表示双精度浮点型并用e\E计数法表示,f表示双精度浮点数型并十进制表示,o表示无符号八进制,u表示无符号十进制,x\X表示无符号十六进制。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值