2

boost::program_options を使用してコンソールから整数配列を読み取りたい。配列の長さは不明で、1 回の試行ですべてのデータを読み取りたくありません。どうやってやるの?

私が今やっていることは、

$ ./foo --array "1, 2, 3"

次に、入力文字列を分割して arr[] に入力します。

しかし、私は次のようなものが欲しい

$ ./foo --array 1 --array 2 --array 3

そしてarr[]でそれを読んでください。また、arr[] の長さを知りたいのですが、それをコマンドライン パラメータにしたくありません。

4

1 に答える 1

5

配列の代わりにベクトルを使用します。次に、オプション タイプとしてベクトルを指定するだけです。

po::options_description desc("Allowed options");
desc.add_options()
    ("array", po::value< vector<int> >())
;

コマンド ラインの各オプションは、ベクターに追加されます。

于 2012-03-16T19:05:13.247 に答える