C++でコマンドライン引数を取得する方法はいくつかあります。以下にいくつかの方法とそれぞれのコード例を示します。
- argcとargvを使用する方法:
C++のmain関数は通常、以下のように定義されています。
int main(int argc, char* argv[])
{
// コマンドライン引数の処理
// ...
return 0;
}
argc
はコマンドライン引数の数を表し、argv
は引数の配列です。argv[0]
にはプログラムの実行ファイル名が含まれます。以下は、引数の値を出力する例です。
#include <iostream>
int main(int argc, char* argv[])
{
for (int i = 0; i < argc; ++i)
{
std::cout << "引数 " << i << ": " << argv[i] << std::endl;
}
return 0;
}
- boost::program_optionsライブラリを使用する方法:
boost::program_options
ライブラリを使用すると、より高度なコマンドラインオプションの処理が行えます。以下は、boost::program_options
を使用してコマンドライン引数を解析する例です。
#include <iostream>
#include <boost/program_options.hpp>
namespace po = boost::program_options;
int main(int argc, char* argv[])
{
po::options_description desc("Allowed options");
desc.add_options()
("help", "ヘルプメッセージを表示")
("input", po::value<std::string>(), "入力ファイル名")
("output", po::value<std::string>(), "出力ファイル名");
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
if (vm.count("help"))
{
std::cout << desc << std::endl;
return 1;
}
if (vm.count("input"))
{
std::cout << "入力ファイル: " << vm["input"].as<std::string>() << std::endl;
}
if (vm.count("output"))
{
std::cout << "出力ファイル: " << vm["output"].as<std::string>() << std::endl;
}
return 0;
}
この例では、--help
オプションでヘルプメッセージが表示され、--input
および--output
オプションで入力および出力ファイル名が指定されます。
これらはC++でコマンドライン引数を取得するための一般的な方法の一部です。他にもさまざまな方法がありますが、ここでは代表的なものを紹介しました。選択した方法に応じて、自分のプログラムに最適なものを選んでください。