C++ 我如何从C+中的argc和argv中获益+;,标准方式?
什么是检索和检查argc和argv的标准方法,在linux中的最佳用法是什么以及如何做到这一点 请举例说明 “我希望有一个复杂的命令行选项,并希望在我的应用程序中使用它们” 这就是我的意思 谢谢C++ 我如何从C+中的argc和argv中获益+;,标准方式?,c++,linux,argv,argc,C++,Linux,Argv,Argc,什么是检索和检查argc和argv的标准方法,在linux中的最佳用法是什么以及如何做到这一点 请举例说明 “我希望有一个复杂的命令行选项,并希望在我的应用程序中使用它们” 这就是我的意思 谢谢intmain(intargc,char*argv[]) { 对于(int i=0;i int main(int ARCC,char *Agv[]) { 对于(int i=0;i >(至少)有两种方式来编写主< /C>函数: int main() { } 及 如果使用第二个选项,则命令行参数将位于ar
intmain(intargc,char*argv[])
{
对于(int i=0;i
在C和C++中都是工作的,虽然C++中应该包含CSTDIO,而在C中应该包括STDIO .H.< /P> <代码> int main(int ARCC,char *Agv[])
{
对于(int i=0;i 在C和C++中都是工作的,虽然C++中应该包含CSTDIO,而在C中应该包括STDIO .H.
int main()
{
}
及
如果使用第二个选项,则命令行参数将位于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;
}
}
#包括
int main(int argc,char*argv[])
{
对于(int i=0;imain
函数(至少)有两种方法:
int main()
{
}
及
如果使用第二个选项,则命令行参数将位于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;
}
}
#包括
int main(int argc,char*argv[])
{
对于(int i=0;i std::cout请使用boost程序选项访问命令参数。请使用boost程序选项访问命令参数。您想如何处理它们
一个简单的用法示例如下所示:
// 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.";
}
}
//从命令行获取数字,并将其放入向量中。
int main(int argc,char*argv[])
{
/*从命令行获取数字。例如:
$my_prog 12345678910
*/
std::向量数(argc-1);
尝试
{
转换(argv+1,argv+argc,numbers.begin(),
boost::词法(u-cast);
}
捕获(const std::exception&)
{
你想用它们做什么
一个简单的用法示例如下所示:
// 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.";
}
}
//从命令行获取数字,并将其放入向量中。
int main(int argc,char*argv[])
{
/*从命令行获取数字。例如:
$my_prog 12345678910
*/
std::向量数(argc-1);
尝试
{
转换(argv+1,argv+argc,numbers.begin(),
boost::词法(u-cast);
}
捕获(const std::exception&)
{
std::cout“check for”是什么意思?要么是intmain()
要么是intmain(intargc,char*argv[])
。如果你有前者,你就没有参数向量,如果你有后者,你就没有参数向量。你想做什么?一堆简单的参数?复杂的命令行选项?非常不清楚的问题。你不必检索argc/argv——它们作为参数传递给main()
。你说的“检查”是什么意思要么是intmain()
要么是intmain(intargc,char*argv[])
。如果你有前者,你就没有参数向量,如果你有后者,你就没有参数向量。你想做什么?一堆简单的参数?复杂的命令行选项?非常不清楚的问题。你不必检索argc/argv——它们作为参数传递给main()“+代码”> + 1,显示OP在哪里买一个轮子,而不是一个。+ 1表示购买一个轮子而不是建立一个轮子。而不是正确回答实际问题。我不是C++专家,所以请原谅我的无知,但是什么是可怕的关于<代码> PrtufF <代码>?如果问题被标记为C,那么PrtTF就可以了。但是这问题是用C++标记的,所以你应该使用的是提供给你的类型安全机制,而不是依赖于另一种语言的向后兼容性。而不是正确回答实际问题。我不是C++专家,所以请原谅我的无知,但是什么是可怕的关于<代码> PrtufF <代码>?如果问题被标记为C。那么,PrtTf就可以了。但是这个问题是C++的标记,所以你应该使用的是提供给你的类型安全机制,而不是依赖于另一种语言的向后兼容性。+ 1用于显示数组语法,当有这么多只是“char **ARGV”时,我知道它是相同的:代码> STD::向量参数(ARGV,ARV+ARCC)。;
+1用于显示数组语法,当这么多只显示“char**argv”时。我知道这是相同的std::vector arguments(argv,arv+argc);