检索和检查 argc 和 argv 的标准方法是什么,最好的用法是什么以及如何在 linux 中做到这一点?
请提供例子。
“我想要一个复杂的命令行选项,我想在我的应用程序中使用它们”这就是我的意思。
谢谢
有(至少)两种方法来编写你的main
函数:
int main()
{
}
和
int main(int argc, char* argv[])
{
}
如果您使用第二个选项,那么您的命令行参数将是 in 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;
}
}
请使用 boost 程序选项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。