c 命令列解析庫cmdline使用

2021-10-13 12:44:14 字數 1481 閱讀 9067

之前用過 getopt 函式對主函式引數進行解析,後發現了 cmdline 這個庫——說是庫,實際只是乙個標頭檔案,非常方便整合到程式中。本文對此庫進行簡單測試。

測試**如下:

/*

如果解析不存在的引數,會報段錯誤,最好加預設值

todo:新增子命令,類似 git log、git status 這樣的

*/#include "cmdline.h"

#include #include using namespace std;

bool g_bprint = false;

// 有些幫助資訊過多,使用函式組裝

char* gethelp(int type)

; if (type == 't')

return info;

}int main(int argc, char *ar**)

catch(const std::exception &e){}

try catch(const std::exception &e)

try catch(const std::exception &e){}

try catch(const std::exception &e){}

try} catch(const std::exception &e){}

// 此法不能判斷不存在的引數

// if (theargs.exist("type"))

// //

if (theargs.exist("rate")) // 非bool型別,似乎也不能如此判斷

if (theargs.exist("print"))

return 0;

}

輸出結果如下:

$ ./a.out 

argument number must be longer than 0

usage: ./a.out [options] ...

options:

-t, --test test type

autotest - for auto test

dualtest - for dual version test

more comming up... (string [=auto])

-h, --host host name (string [=])

-r, --rate rate number (int [=80])

-p, --print show message

-?, --help print this message

$ ./a.out -r 100 -h latelee.org

test type: auto

param [bad] not exist...

host: latelee.org

rest args:

100

命令列解析

不想自已分析命令列的話也可以 lpwstr lpwargv lpwargv commandlinetoargvw getcommandlinew dwcount dwcount的值即為命令列引數的個數 像控制台程式一樣,引數也包括本執行檔案的全路徑 lpwargv為乙個lpwstr 的指標,需要按如...

C 命令列解析工具

我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法 林選臣大神寫的,他的方法很簡單。首先複製兩個類到專案 public class commandlineargumentparser public static commandlineargumentparser parse string a...

C 命令列解析工具

我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法 林選臣大神寫的,他的方法很簡單。首先複製兩個類到專案 public class commandlineargumentparser public static commandlineargumentparser parse string a...