編寫獲取命令行參數Getopt函數(C++)

Linux系統下C++有自帶的獲取主函數main命令行參數的函數getopt,但在Windows系統下並沒有這樣的系統函數存在,不用擔心,我們可以自行編寫。

實例:
Project名稱test

int nic_option = -1;
char cont_optin = '0';
char destIP_option[16] = { 0 };

int getopt(int argc, char *argv[])
{
    // "i:r:d:"
    for (int i = 1; i < argc; i++)
    {
        if (!strcmp(argv[i], "-i"))   // 獲取整形數據
            nic_option = atoi(argv[i + 1]);

        if (!strcmp(argv[i], "-r"))   // 獲取字符串或數組
            sprintf(destIP_option, "%s", argv[i + 1]);

        if (!strcmp(argv[i], "-d"))   // 獲取字符
            cont_optin = atoi(argv[i + 1]);
    }           
    return 1;
}

// 主函數
int main(int argc, char *argv[])
{
    if (getopt(argc, argv) == -1)       
       return -1;       
    else
       return -1;       
}

編譯後生成test.exe
比如在cmd窗口輸入: test.exe -i 0 -r 127.0.0.1 -d a
執行結果爲:
nic_option = 0;
char cont_optin = ‘a’;
char destIP_option[16] =”127.0.0.1”;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章