C语言里格式控制符0的使用

问题:输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
输出三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0

示例:
输入:20130225
输出:year=2013
month=02
date=25

#include<stdio.h>
int main()
{
    int year,month,day;
    scanf("%4d%2d%2d",&year,&month,&day);
    printf("year=%4d\n",year);
    printf("month=%02d\n",month);
    printf("date=%02d\n",day);
    return 0;
}

需要注意的点:

  • 输入数据时分成三段,如弄成一个数字则不好操作
  • 格式控制符中的0:有0表示指定空位填0,如省略表示指定空位不填
  • m.n 指定输出域宽度及精度
    m表示数据最小宽度,如果实际数据宽度>m,按实际数据宽度输出,如果实际数据宽度<m,左边补空格。n对于实数来讲表示n位小数,对于字符串来讲,表示截取的字符个数
posted @ 2021-08-18 10:48  vhy  阅读(635)  评论(0编辑  收藏  举报