如何从用户那里获取输入作为 C 中的整数数组?
How to get an input from user as an integers array in C?
我是 C 的新手,目前正在 edx.org 的 CS50 课程中学习它(此任务不是来自 CS50 课程)。
我编写的程序要求用户输入出生日期,然后根据系统日期计算当前年龄。
现在我通过这种方式从用户那里获取值(GetInt()
和 GetString()
是来自 cs50.h
header 和库的函数)。
// 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],这样我就可以访问这些以后分别取值?
创建一个结构来获取:
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;
您可以执行以下操作:
int array[3];
scanf("%d.%d.%d", &array[0], &array[1], &array[2]);
输入 18.06.1990,array[0] 将包含 18,array[1] 将包含 6,array[2] 将包含 1990。
我是 C 的新手,目前正在 edx.org 的 CS50 课程中学习它(此任务不是来自 CS50 课程)。
我编写的程序要求用户输入出生日期,然后根据系统日期计算当前年龄。
现在我通过这种方式从用户那里获取值(GetInt()
和 GetString()
是来自 cs50.h
header 和库的函数)。
// 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],这样我就可以访问这些以后分别取值?
创建一个结构来获取:
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;
您可以执行以下操作:
int array[3];
scanf("%d.%d.%d", &array[0], &array[1], &array[2]);
输入 18.06.1990,array[0] 将包含 18,array[1] 将包含 6,array[2] 将包含 1990。