HW_Lib/demo/arg/test.c

49 lines
1.2 KiB
C

#include "stdio.h"
#include "argpase.h"
enum Opt {
T0 = 0, T1, T2, T3, T4, T5
};
Option Opts[6] = {{"T0", T0},
{"T1", T1},
{"T2", T2},
{"T3", T3},
{"T4", T4},
{"T5", T5}};
void Test_argpase() {
OptList *Head = Options_Creat("Head", -1);
OptList *t;
int i;
for (i = 0; i < 6; i++) {
t = Options_CreatOpt(&Opts[i]);
Options_Add(Head, t);
}
Options_Print(Head);
char *s = "T1 52 T2 64 T5 72";//模拟串口参数传入
char *argv[20];
size_t argc;
argc = Str_To_Args(s, argv);
printf("\nargs\n");
for (i = 0; i < argc; ++i) {
printf("arg[%d]:%s\n", i, argv[i]);//打印参数拆分情况
}
OptId optid;
while ((optid = Options_Load(Head, argv, argc)) != -1) {//开始匹配 Optarg为匹配的参数(字符类型可atoi等转换)
switch (optid) {
case T0:
case T1:
case T2:
case T3:
case T4:
case T5:
printf("Opt_%s[%d]:%s\n", Optstr, optid, Optarg);
break;
default:
break;
}
}
}