gpt4 book ai didi

c - 在 C 中定义自定义命令行参数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:57 24 4
gpt4 key购买 nike

我需要从终端传递一个“ key ”作为参数。它应该运行为
./a.out -k100101001
其中 10011001 是 key ,-k 是指定它的标志。
如果我需要传递文件名和 key ,它应该以
./a.out -k10011001 -iparameter.txt
运行,其中参数.txt 是文件名,-i 是指定它的标志。

注意:我有几个参数要传递,参数值跟在标志后面没有空格(-iparameter.txt),而且我不知道参数的顺序标志,所以做这样的事情不会有帮助。

int main(int argc, char **argv) {
if (argc == 2) {
if (!strcmp(argv[1], "-k")) something();
if (!strcmp(argv[1], "-i")) something();
}

对 C 有什么建议吗?我正在使用 Ubuntu 来运行我的程序。谢谢。

最佳答案

通过 argv 使用循环应该可以做到这一点。

int main(int argc, char *argv[])
{
int numArg;

for (numArg = 1; numArg < argc; numArg++)
{
if (argv[numArg][0] == '-')
{
switch (argv[numArg][1])
{
case 'k' : somethingAboutKey(argv[numArg] + 2); // The parameter's value is passed directly to the function
break;
case 'i' : somethingAboutFile(argv[numArg] + 2);
break;
}
}
}
}

关于c - 在 C 中定义自定义命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399720/

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