如何以这种方式接受命令行参数:
./a.out --printall
所以在我的程序中,我有类似
的东西if (printall) {
// do something
}
我不想这样做:
if (argc == 2)
//PRINTALL exists
因为我的程序可以有多个命令行选项:
./a.out --printread
./a.out --printwrite
其次,我不想使用getopt,这样命令变为
./a.out -printall 1
我发现./a.out --printall
比./a.out -printall 1
编辑: 我见过这样做的程序:
./a.out --help
我想知道它们是如何运作的。
答案 0 :(得分:3)
(关于解析部分问题的论点:)
getopt_long()
您需要<unistd.h>
。这是一个GNU扩展。
为了更好的可移植性,您可以考虑使用Boost program options,尽管这是一个已编译的库。
答案 1 :(得分:2)
命令行参数不能用于触发条件编译。该程序已在程序运行之前编译。
这是一个非常迂腐的答案。对于一般的命令行选项,请参阅Kerrek SB的答案。