-
Notifications
You must be signed in to change notification settings - Fork 2
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だった場合はエラーを返すようにすると良いでしょう |