gpt4 book ai didi

c - 期待两种类型的输入?

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:44 25 4
gpt4 key购买 nike

假设我有一个程序可以告诉你什么时候会死。我需要用户的年龄。但是用户可以告诉我他的年龄或生日。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com