1

argcとargvを取得してチェックする標準的な方法は何ですか?Linuxでの最適な使用法とその方法は何ですか?

例を挙げてください。

「複雑なコマンドラインオプションが必要で、アプリケーションでそれらを使用したい」ということです。

ありがとう

4

4 に答える 4

7

main関数を作成するには(少なくとも)2つの方法があります。

int main()
{
}

int main(int argc, char* argv[])
{
}

2番目のオプションを使用する場合、コマンドライン引数はになりますargv。これにargcは要素の数が含まれます。

#include <iostream>
int main(int argc, char* argv[])
{
  for (int i = 0; i < argc; ++i)
  {
    std::cout << "arg #" << i << ": " << argv[i] << std::endl;
  }
}
于 2010-06-15T17:19:07.600 に答える
7

コマンド引数にアクセスするには、ブーストプログラムオプションhttp://www.boost.org/doc/html/program_options.htmlを使用してください。

于 2010-06-15T17:19:09.487 に答える
4

あなたは彼らと何をしたいですか?

使用法の簡単な例は次のようなものです。

// Get numbers from the command line, and put them in a vector.
int main(int argc, char* argv[])
{
    /* get the numbers from the command line. For example:

           $ my_prog 1 2 3 4 5 6 7 8 9 10
    */
    std::vector<int> numbers(argc-1);
    try
    {
        std::transform(argv+1, argv+argc, numbers.begin(),
                       boost::lexical_cast<int, char*>);
    }
    catch(const std::exception&)
    {
        std::cout << "Error: You have entered invalid numbers.";
    }
}

それはあなたが何をしようとしているのかによります。多くの種類の引数などがある場合は、のようなものを使用することをお勧めしますboost program options

于 2010-06-15T17:19:49.083 に答える
2
int main(int argc, char* argv[])
{
    for(int i = 0; i < argc; i++)
        printf("%s\n", argv[i]);
}

CとC++の両方で動作しますが、C ++ではcstdioを含める必要があり、Cではstdio.hを含める必要があります。

于 2010-06-15T17:17:56.353 に答える