1. 程式人生 > >Boost命令列直譯器的簡單使用:Boost.Program_options

Boost命令列直譯器的簡單使用:Boost.Program_options

### 簡介 如果使用比較多的命令列程式的話,對於命令列引數的輸入肯定不會陌生,大部分的程式都是通過類似下面的形式進行輸入的,比如熟悉的`ls` ``` ls --all -l --color=auto ``` 這裡麵包含了三種不同的命令列輸入`--all`,`-l`和`--color=auto`。如果使用一般的解決方法的話,是使用`getopt.h`檔案中的`getopt`函式。其具體的教程可以看《[Linux下getopt()函式的簡單使用](https://www.cnblogs.com/qingergege/p/5914218.html)》,其使用方法比較麻煩。而且只支援一個字元的選項,如果要像`--color=auto`一樣支援長選項,必須再使用`getopt_long`函式,而且由於其是對C進行支援的,所以在C++中使用起來也比較麻煩。 而Boost提供的Program_options庫可以很好的解決這一問題。Program_options提供了一個成熟的C++庫來解析命令列引數,幾行簡單清晰的程式碼就可以描繪出一個完整的命令列解析器。 而其的使用方法也是非常的簡單,大致可以分為三個部分,構建解析器物件,解析命令列引數,使用結果。 使用的時候需要連結boost_program_options庫 ### 沒有引數的選項 一個非常簡單的例子,只定義了一個選項`help`,執行時會直接先列印獲取到的`var_map`的`name`,然後檢查是否存在`help`選項,如果存在則列印命令列幫助,如果不存在,就直接推出。 ```C++ #