【发布时间】:2015-01-26 03:56:31
【问题描述】:
我正在尝试使用 getopt 来解析我的命令行参数,但我遇到了一个问题,它设置了错误的值,它跳过了 case 1 并将 case 2 设置为 case 1。这里是 while 循环案例。标志工作正常,只是按位置读取就是问题所在。
while ((c = getopt (argc, argv, "-l:u:eo")) != -1)
switch (c)
{
case 1:
printf("here\n");
lower = atoi(optarg);
break;
case 2:
upper = atoi(optarg);
break;
}
这是运行程序后终端的输出。
(%) fibon 12 22
here
here
lower = 22, upper = 0, even = 0, odd = 0
Usage: fibon[[lower upper] | [-l lower -u upper]] [-e|-o]
【问题讨论】: