概述:当我们有几种不同的输入格式,但是我们使用同一个输入函数
这个问题可以扩大化,比如,我们可能有多个输入条件,我们应该如何处理?这两个问题,我们可以采用同样的模型。下面举个例子:
比如:我们输入 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);
}