接受多种格式的输入

我想创建一个接受日期的代码,但是我想让用户能够输入日期为ddmmyyyy或dd-mm-yyyy。我的代码如下,我试着使用OR,但没有成功。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main ()
{
    int dayA, monthA, yearA,

    printf("First date in format DD/MM/YYYY or DD-MM-YYYY: ");
    scanf("%d/%d/%d" || "%d-%d-%d", &dayA, monthA, yearA);

解决方案:

这里有一个简单的方法来实现它。它输入一个字符串,然后检查其中一个格式方法是否有效。它总是必须检查来自于 scanf 函数系列,以了解转换是否成功。

#include<stdio.h>

int main(void)
{
    int dayA, monthA, yearA;
    puts("Enter a date dd/mm/yyyy or dd-mm-yyyy");
    char datestr[32];
    if(fgets(datestr, sizeof datestr, stdin) != NULL) {
        if(sscanf(datestr, "%d/%d/%d", &dayA, &monthA, &yearA) == 3 ||    // added missing &
           sscanf(datestr, "%d-%d-%d", &dayA, &monthA, &yearA) == 3) {
              printf("Date is day %d, month %d, year %d\n", dayA, monthA, yearA);
        }
    }
}

下面是程序的两次运行。

输入日期 ddmmyyyy 或 dd-mm-yyyy2342020日期是第23天,第4月,2020年。

输入日期 ddmmyyyy 或 dd-mm-yyyy23-4-2020日期是第23天,第4月,2020年。

给TA打赏
共{{data.count}}人
人已打赏
未分类

将React类组件转换为功能组件

2022-9-8 10:27:18

未分类

如何根据其他变量将未知的变量累加打印到有头行的列中?

2022-9-8 10:27:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索