Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我如何从C+中的argc和argv中获益+;,标准方式?_C++_Linux_Argv_Argc - Fatal编程技术网

C++ 我如何从C+中的argc和argv中获益+;,标准方式?

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

什么是检索和检查argc和argv的标准方法,在linux中的最佳用法是什么以及如何做到这一点

请举例说明

“我希望有一个复杂的命令行选项,并希望在我的应用程序中使用它们” 这就是我的意思

谢谢

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.

< P> >(至少)有两种方式来编写<代码>主< /C>函数:

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;istd::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);