【发布时间】:2021-11-16 19:55:46
【问题描述】:
这是我的代码(我知道使用 %d 是错误的,但我不确定应该使用什么):
#include <stdio.h>
#include <stdlib.h>
int main()
{
char charactername[] = "Ruby";
int age =18;
printf("Once upon a time there was girl named %s\n",charactername);
printf("%s was %d years old\n",charactername,age);
age =19;
int birthday = 22/07/2003;
printf("on %d she was born\n",birthday);
printf("On 22/07/2022 she will become %d",age);
return 0;
}
这是终端给我的:
从前有个女孩叫鲁比
鲁比 18 岁
她在 0 日出生
2022 年 7 月 22 日,她将满 19 岁
【问题讨论】:
-
int birthday = 22/07/2003;你觉得这有什么作用? -
22/07/2003与(22/07)/2003相同。22/07的计算结果为3,而3/2003为零。所以你已经将birthday初始化为0。问题不在于格式说明符。 -
令人着迷。
22/07/2003是0,但2003-07-22是1974:D -
一般情况下,可以考虑使用
strftime()来格式化时间和日期,它有自己的一组格式说明符。 -
@YakovGalka,现在试试
2003-08-22。我怀疑“Ruby Octal”的结果不是 1973 年。 ;-)
标签: c date format-specifiers