【发布时间】:2015-03-23 15:00:08
【问题描述】:
我正在尝试接受命令行参数。如果我想有多个可选的命令行参数,我将如何去做?例如,您可以通过以下方式运行程序: (每个实例都需要 a,但 -b -c -d 可以以任意顺序任意给出)
./myprogram -a
./myprogram -a -c -d
./myprogram -a -d -b
我知道 getopt() 的第三个参数是选项。我可以将这些选项设置为“abc”,但是我设置开关盒的方式会导致循环在每个选项处中断。
【问题讨论】:
-
你能展示你的开关盒吗?
-
请显示您的循环和
switch块,因为这是您的循环过早终止。通常循环只检查getopt是否返回-1,将返回值赋给一个变量以在switch语句中使用。 -
IMO:检索命令行参数的最佳方法是使用 make 使用 argc 检索参数总数并使用 *argv[] 检索参数。其中 argc 是 argv 中的项目数,argv[0] 是程序编号,argv[argc] 将是一个空指针,指示命令行参数列表的结尾
标签: c debugging command-line-arguments getopt getopt-long