gpt4 book ai didi

c - 如何解析C中的命令行参数?

转载 作者:行者123 更新时间:2023-11-30 15:30:10 28 4
gpt4 key购买 nike

我正在尝试解析 C 中的命令行参数。目前,我正在使用 getopt 进行解析。我有这样的东西:

#include <unistd.h>

int main(int argc, char ** argv)
{
while((c=getopt(argc, argv, "abf:")) != -1)
{
switch(c)
{
case 'a':
break;
case 'b':
break;
case 'f':
puts(optarg);
break;
case ':':
puts("oops");
break;
case '?'
puts("wrong command");
break;
}
}
}

然后需要使用./a.out -f来运行程序,而-f是命令元素,但看起来像-f 必须以 '-' 开头,如果我不希望命令元素以 '-' 开头,即使用 ./a.out f 而不是./a.out -f,如何实现呢?

如果getopt不支持以这种方式解析命令行,是否有其他库可以在C中使用?

最佳答案

argcargv 变量使您能够访问您要查找的内容。 argc 是“参数计数”,argv 是“参数 vector ”(字符串数组)。

getopt 是一个非常有用且强大的工具,但如果您不能以破折号开头,则可以直接访问参数数组:

int main( int argc, char** argv) {
if( argc != 1) { /* problem! */ }
char * argument = argv[1]; // a.out f ... argv[1] will be "f"
}

关于c - 如何解析C中的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com