假设我有一个程序可以告诉你什么时候会死。我需要用户的年龄。但是用户可以告诉我他的年龄或生日。
printf("Tell me your age or brith day\n");
if(scanf("%d", &age)!=1){
printf("error");
}
else if(scanf("%d %d %d", &day,&month,&year)!=3){
printf("error");
我试过了,还是不行。只有第一个有效,而不是第二个。
同样,基本上,我只想为用户提供 2 个不同的选项。告诉我他的年龄的 2 种不同方式。
最佳答案
我会使用 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;
}
关于c - 期待两种类型的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070622/