Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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++;如何检查是否给出了论证?_C++_Argv_Argc - Fatal编程技术网

C++ c++;如何检查是否给出了论证?

C++ c++;如何检查是否给出了论证?,c++,argv,argc,C++,Argv,Argc,如果我跑步: /程序测试 Buff1=测试 如果我跑步: /程序 Buff1=包/=包 如果没有指定任何内容,我如何使Buff1在默认情况下成为“default” 提前感谢。使用argc确定参数计数。如果没有给出参数,它将等于1,如果给出一个参数,它将等于2 请注意,不能使用=运算符比较C字符串。这是指针比较。使用argc确定参数计数。如果没有给出参数,它将等于1,如果给出一个参数,它将等于2 请注意,不能使用=运算符比较C字符串。这是指针比较。argc提供传递给程序的参数数量。 请记住,arg

如果我跑步: /程序测试

Buff1=测试

如果我跑步: /程序

Buff1=包/=包

如果没有指定任何内容,我如何使Buff1在默认情况下成为“default”


提前感谢。

使用
argc
确定参数计数。如果没有给出参数,它将等于1,如果给出一个参数,它将等于2


请注意,不能使用
=
运算符比较C字符串。这是指针比较。

使用
argc
确定参数计数。如果没有给出参数,它将等于1,如果给出一个参数,它将等于2


请注意,不能使用
=
运算符比较C字符串。这是指针比较。

argc提供传递给程序的参数数量。
请记住,
argc
不能小于1,因为
argv[0]
始终是程序的名称,因此如果没有传递参数,则应使用此
if(argc==1){}

argc提供传递给程序的参数数量。
请记住,
argc
不能小于1,因为
argv[0]
始终是程序的名称,所以如果没有传递参数,您应该使用此
if(argc==1){}

使用
argc
来了解主要参数是如何传递的。Shell或process invoker通常至少为程序提供一个参数,即程序名本身,并且始终是第一个参数。结果是,
argc=1
至少,并且
argv[0]
是程序名

//Checks if a arguement was specified
if (argv[1] != "")
    strcpy(Buff1, argv[1]);
else
    strcpy(Buff1, "default");
int main(int argc,char**argv){
//声明和这里的一切

if(argc使用
argc
了解主参数是如何传递的。Shell或进程调用程序通常向程序提供至少一个参数,即程序名本身,并且始终是第一个参数。结果表明,
argc=1
至少,
argv[0]
是程序名

//Checks if a arguement was specified
if (argv[1] != "")
    strcpy(Buff1, argv[1]);
else
    strcpy(Buff1, "default");
int main(int argc,char**argv){
//声明和这里的一切

如果(argc好,如果没有传递任何内容,argc将变为1(argc给出传递的参数数)。这意味着其中包含任何内容的唯一argv元素将是argv[0](其中包含程序名)。这意味着调用argv[1]将是超出范围的索引,可能导致崩溃,或者如果幸运的话,将只是垃圾数据

  int main(int argc, char **argv){
      // declarations and all here
      if(argc<2){
         strcpy(Buff1, "default");

        }
       else{
          strcpy(Buff1, argv[1]);
      }
     return 0;
  }
还值得注意的是,您传递示例参数的方式与您的意图不符:“./program test Buff1=test”将导致argc为4,argv[0]为“test”,argv[1]为“Buff1”,argv[2]为“=”且argv[3]为“test”


简单地调用“/program test helllooo”可以使用我提供的程序snipit,用“helllooo”填充Buff1。调用“/program test”也可以,用“default”填充Buff1。要做更高级的事情,您必须进入命令行开关(比如./program test-b somethinghere-x somethinghere),这只是解析argc和argv的一种更高级的方法。

好的,如果没有传递任何内容,argc将变为1(argc给出传递的参数数)。这意味着其中包含任何内容的唯一argv元素将是argv[0](其中包含程序名)。这意味着调用argv[1]将是超出范围的索引,可能导致崩溃,或者如果幸运的话,将只是垃圾数据

  int main(int argc, char **argv){
      // declarations and all here
      if(argc<2){
         strcpy(Buff1, "default");

        }
       else{
          strcpy(Buff1, argv[1]);
      }
     return 0;
  }
还值得注意的是,您传递示例参数的方式与您的意图不符:“./program test Buff1=test”将导致argc为4,argv[0]为“test”,argv[1]为“Buff1”,argv[2]为“=”且argv[3]为“test”

简单地调用“/program test helllooo”可以使用我提供的程序snipit,用“helllooo”填充Buff1。调用“/program test”也可以,用“default”填充Buff1。要做更高级的事情,您必须进入命令行开关(比如./program test-b somethinghere-x somethinghere),这只是解析argc和argv的更高级方法。

建议: 使用argv.size()获取计数。

建议:
使用argv.size()获取计数。

这就是为什么
argc
存在的原因(某种程度上,因为
argv
以空字符串结尾)。请不要编辑问题以包含解决方案。您会使答案无效,这对任何人都没有帮助。这就是
argc
存在的原因(某种程度上,因为
argv
以空字符串结尾)。请不要编辑问题以包含解决方案。您会使答案无效,这对任何人都没有帮助。
argv
是一个
char**
。它没有成员函数。
argv
是一个
char**
。它没有成员函数。