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时发生情况
1
Date Order : 01-4227112-0000
我想试试这个
Date Order : 01-00-0000
zy1mlcev1#
scanf()不会更改转换失败对应的变量,因此在调用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);
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。
2条答案
按热度按时间zy1mlcev1#
scanf()
不会更改转换失败对应的变量,因此在调用scanf()
之前,应初始化这些变量。xzlaal3s2#
尝试使用以下代码打印日期格式:dd-mm-yyyy到00-00-0000:
这将把日期转换为所需的格式,其中年份或者按原样打印,或者如果年份为0,则打印为0000。