簡體   English   中英

在C中定義自定義命令行參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM