以下のサイトのcmdline.hを使ってみてください。
cmdline.hをインクルードするだけで使えます。
非常にシンプルに使えるのでおすすめです。
git: https://github.com/tanakh/cmdline
作者のサイト: http://d.hatena.ne.jp/tanakh/20091028
#使い方
##宣言
#include "cmdline.h"
int main(int argc, char **argv){
...
cmdline::parser p;
...
}
##コマンドラインオプションの登録
parser::add<T>を使って登録します。Tは受け取る値の型です。
第1引数 | フルネームのコマンドライン・オプション |
第2引数 | 一文字のコマンドライン・オプション |
第3引数 | コマンドライン・オプションの説明 (--helpのとき表示) |
第4引数 | 必須オプションかどうか |
第5引数 | 初期値 |
#include "cmdline.h"
int main(int argc, char **argv){
...
cmdline::parser p;
p.add<int>("number",'n',"particle number",false,10);
...
}
##コマンドラインオプションのパース
parser::parse_checkを使います。
#include "cmdline.h"
int main(int argc, char **argv){
...
cmdline::parser p;
p.add<int>("number",'n',"particle number",false,10);
p.parse_check(argc,argv);
...
}
##コマンドラインオプション値の取得
parser::getを使います。
#include "cmdline.h"
int main(int argc, char **argv){
...
cmdline::parser p;
p.add<int>("number",'n',"particle number",false,10);
p.parse_check(argc,argv);
int n = p.get<int>("number");
...
}
##コマンドライン引数の残り
rest()はコマンドライン引数の残りをstring配列として返します。
#include "cmdline.h"
int main(int argc, char **argv){
...
cmdline::parser p;
p.add<int>("number",'n',"particle number",false,10);
p.parse_check(argc,argv);
int n = p.get<int>("number");
if(p.rest().size() > 0){
hoge=parser.rest()[0];
}
...
}