Skip to content

Console

Harumo Sasatake edited this page Oct 18, 2018 · 1 revision

引数の処理

よくあるのが,./program file_name みたいな感じでプログラムを起動するもので file_nameが点群ファイルの名前になっている場合,pclはプログラムに与えられた引数から ファイルの名前と拡張子を抽出することが出来ます.

予備知識

通常,c++プログラムはこれらの引数は

void int main(int argc, char** argv){
    //some process
}

argc, argvでプログラムに渡されます. argcにはプログラムに与えられた引数の数を,aegvにはその引数そのものがcharの配列となって与えられます. 例えば,

./program file1 file2 file3

として,プログラムを起動した場合 argc=4となり,argvの中身は

順番[i] argv[i]
0 program
1 file1
2 file2
3 file3

となります.必ず,最初の引数はプログラム本体の名前になります.

本題

下記の関数にargc, argvを渡すことによって便利な機能を使うことができます.

関数名 説明
pcl::console::find_switch(int argc, char** argv, std::string arg_name) arg_nameが引数にあるかどうかを返す.あれば,true を返す.
pcl::console::parse_file_extension_argment(int argc, char** argv, std::string extension) 引数の中にextionsion拡張子が何番目に入っているかを表すstd::vectorを返す.1番目と3番目だったらstd::vector = {1,3}が変える.std::vector::size()が0だった場合はエラーを返すようにすると良いでしょう

Clone this wiki locally