我需要传递一个'密钥'作为终端的参数。它应该作为 ./a.out -k100101001
运行
其中10011001是键,-k
是指定它的标志
如果我需要传递一个文件名和密钥,它应该以 ./a.out -k10011001 -iparameter.txt
的形式运行,其中parameter.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来运行我的程序。 感谢。
答案 0 :(得分:2)
使用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;
}
}
}
}