1. ホーム
  2. c++

[解決済み] コマンドライン引数を文字列に変換する

2022-02-04 13:19:27

質問

ハードコードされたファイルパスを読み込むプログラムがあるのですが、代わりにコマンドラインからファイルパスを読み込むようにしたいのです。そのために、コードを次のように変更しました。

#include <iostream>

int main(char *argv[])
{
...
}

が、しかし argv[1] この方法で公開された変数はポインター型のようですが、私はそれを文字列として必要とします。このコマンドライン引数を文字列に変換するには、どうすればよいのでしょうか?

どのように解決するのですか?

もう、C言語風の文字列の配列ですね。

#include <iostream>
#include <string>
#include <vector>


int main(int argc, char *argv[]) // Don't forget first integral argument 'argc'
{
  std::string current_exec_name = argv[0]; // Name of the current exec program
  std::vector<std::string> all_args;

  if (argc > 1) {
    all_args.assign(argv + 1, argv + argc);
  }
}

引数 argc は引数の数+現在の実行ファイルです。