argcとargvを取得してチェックする標準的な方法は何ですか?Linuxでの最適な使用法とその方法は何ですか?
例を挙げてください。
「複雑なコマンドラインオプションが必要で、アプリケーションでそれらを使用したい」ということです。
ありがとう
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;
}
}
コマンド引数にアクセスするには、ブーストプログラムオプションhttp://www.boost.org/doc/html/program_options.htmlを使用してください。
あなたは彼らと何をしたいですか?
使用法の簡単な例は次のようなものです。
// 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
。
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を含める必要があります。