我是C的新手,目前正在edx.org上的CS50课程上学习(此任务不是来自CS50课程)。
我写了一个程序,要求用户提供出生日期,然后根据系统日期计算当前年龄。
现在我以这种方式从用户那里获取值(GetInt()
和GetString()
是cs50.h
标题和库中的函数。
// Ask user for his name, and date of birth
printf("Enter your name: ");
char* name = GetString();
printf("Enter your day of birth: ");
int birth_day = GetInt();
printf("Enter your month of birth: ");
int birth_month = GetInt();
printf("Enter your year of birth: ");
int birth_year = GetInt();
但我不想让用户3次获得他可以作为一行输入的日期 - 例如18.06.1985。
所以问题是 - 如何以DD.MM.YYYY格式从用户那里获取输入,然后将其存储在整数数组中,如[0,1,2],这样我就可以单独访问这些值以后呢?
答案 0 :(得分:2)
您可以执行以下操作:
int array[3];
scanf("%d.%d.%d", &array[0], &array[1], &array[2]);
在18.06.1990的输入中,数组[0]将包含18,数组[1]将包含6,数组[2]将包含1990。
答案 1 :(得分:1)
创建一个结构来获取它:
typedef struct {
int day;
int month;
int year;
} birthDay;
当您要询问用户时,您可以执行以下操作:
int day, month, year;
printf("Type your birthday (day month year): ");
scanf("%d %d %d", &day, &month, &year);
现在,您可以正确设置结构。
birthday bday;
bday.day = day;
bday.month = month;
bday.year = year;