以下のサイトの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];
}
...
}