多条件输入模型

概述:当我们有几种不同的输入格式,但是我们使用同一个输入函数

这个问题可以扩大化,比如,我们可能有多个输入条件,我们应该如何处理?这两个问题,我们可以采用同样的模型。下面举个例子:

比如:我们输入 mm/dd/yy 和 yy-mm-dd 这两种格式的日期,我们如何处理输入?

代码是在CENTOS6.8上运行的,对于WIN来说,可能没有getline函数,需要自行实现

/*************************************************************************
    > File Name: main.c
    > Author: mhsheng
    > Mail:981065720@qq.com 
    > Created Time: Mon 14 Nov 2016 03:14:04 PM CST
 ************************************************************************/

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

int
main(int argc, char **argv) 
{
    char    *buf        = NULL;
    size_t  buf_len     = 0;
    size_t  line_len    = 0;

    int     yy          = 0;
    int     mm          = 0;
    int     dd          = 0;

    if (getline(&buf, &buf_len, stdin) > 0) {
        if (sscanf(buf, "%d/%d/%d", &mm, &dd, &yy) == 3) {
            printf("%d-%d-%d\n", yy, mm, dd);
        } else if (sscanf(buf, "%d-%d-%d", &yy, &mm, &dd) == 3) {
            printf("%d-%d-%d\n", yy, mm, dd);
        } else {
            printf("formate error\n");
        }
    }

    free(buf);

    exit(0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值