比方说,我有一个程序告诉您何时死亡。我需要用户的年龄。但是用户可以给我他的年龄或生日。
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
我这样尝试过,但是没有用。如果可行,则仅适用于第一个,而不适用。
再次,基本上,我只想给用户2个不同的选项。两种不同的方式告诉我他的年龄。
答案 0 :(得分:4)
我将使用fgets
来获得一行输入,然后使用sscanf
来尝试每种可能性:
#include <stdio.h>
int main(void)
{
char buf[2048];
int day, month, year, age;
printf("Tell me your age or brith day\n");
fflush(stdout);
fgets(buf, sizeof buf, stdin);
if (sscanf(buf, "%d %d %d", &day,&month,&year)==3)
{
printf("Your birthday is %d/%d/%d\n", day, month, year);
}
else if(sscanf(buf, "%d", &age)==1){
printf("You are %d years old.\n", age);
}
else
printf("error");
return 0;
}