[英]Define custom command-line parameters in C?
我需要從終端傳遞“鍵”作為參數。 它應該以
./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運行程序。 謝謝。
通過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;
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.