C语言 如何使用dd-mm-yyyy到00-00-0000打印日期格式

goqiplq2  于 2023-03-17  发布在  其他
关注(0)|答案(2)|浏览(161)
printf("Date Order time\t\t: ");scanf("%02d-%02d-%04d", &d, &m, &y);
printf("\nDate order\t\t: %02d-%02d-%04d", d, m, y);

这就是我键入1时发生情况

Date Order           : 01-4227112-0000

我想试试这个

Date Order          : 01-00-0000
zy1mlcev

zy1mlcev1#

scanf()不会更改转换失败对应的变量,因此在调用scanf()之前,应初始化这些变量。

d = m = y = 0; /* add this */
printf("Date Order time\t\t: ");scanf("%02d-%02d-%04d", &d, &m, &y);
printf("\nDate order\t\t: %02d-%02d-%04d", d, m, y);
xzlaal3s

xzlaal3s2#

尝试使用以下代码打印日期格式:dd-mm-yyyy到00-00-0000:

printf("Date Order time: ");
scanf("%02d-%02d-%04d", &d, &m, &y);
if (m > 12) {
    m = 0;
}
printf("\nDate order: %02d-%02d-%04d", d, m, y);
printf("\nDate Order (converted): %02d-%02d-%04d", d, m, (y != 0 ? y : 0000));

这将把日期转换为所需的格式,其中年份或者按原样打印,或者如果年份为0,则打印为0000。

相关问题