C++でコマンドライン引数を取得する方法


C++プログラムでコマンドライン引数を取得する方法はいくつかあります。以下にいくつかの方法とそれぞれのコード例を示します。

  1. argcとargvを使用する方法: C++のmain関数では、argcとargvという2つの引数を受け取ります。argcはコマンドライン引数の個数を示し、argvは実際の引数の値を指す文字列の配列です。以下はその使用例です。

    #include <iostream>
    int main(int argc, char* argv[]) {
       std::cout << "引数の個数: " << argc << std::endl;
       for (int i = 0; i < argc; i++) {
           std::cout << "引数 " << i << ": " << argv[i] << std::endl;
       }
       return 0;
    }

    このプログラムをコンパイルして実行すると、プログラム名を含むすべての引数が表示されます。

  2. Boost.Program_optionsライブラリを使用する方法: Boost.Program_optionsライブラリは、コマンドライン引数のパースを簡単にするための便利なツールです。以下はその使用例です。

    #include <iostream>
    #include <boost/program_options.hpp>
    int main(int argc, char* argv[]) {
       namespace po = boost::program_options;
       po::options_description desc("Allowed options");
       desc.add_options()
           ("help", "ヘルプメッセージ")
           ("input", 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 0;
       }
       if (vm.count("input")) {
           std::cout << "入力ファイル: " << vm["input"].as<std::string>() << std::endl;
       } else {
           std::cout << "入力ファイルが指定されていません" << std::endl;
       }
       return 0;
    }

    このプログラムでは、"help"というオプションと、"input"というオプションを取ることができます。オプションの値は--input <value>のように指定します。プログラムが--helpオプションで起動された場合、ヘルプメッセージが表示されます。

以上がC++でコマンドライン引数を取得する方法とコード例です。適切な方法を選択して、プログラムに必要な引数を取得してください。