int main(int argc,char * argv [])为什么argc给出2个参数?

时间:2016-02-04 00:20:23

标签: c++ c

如果我理解正确使用int main(int argc,char* argv[]),每当我声明4整数时,argc必须为5.例如;

int main(int argc,char* argv[])
{
int portNb = 0;
int leftMotorHandle;
int rightMotorHandle;
int sensorHandle;


if (argc>=5)
{
    portNb=atoi(argv[1]);
    leftMotorHandle=atoi(argv[2]);
    rightMotorHandle=atoi(argv[3]);
    sensorHandle=atoi(argv[4]);
}
else
{
    printf("Indicate following arguments: 'portNumber leftMotorHandle  rightMotorHandle sensorHandle'!\n");
    extApi_sleepMs(55000);
    return 0;
}

但是当我调试代码时,argc的值是2。我怎么能确定argc的值是5?

3 个答案:

答案 0 :(得分:3)

  

如果我理解正确使用'int main(int argc,char * argv [])',每当我声明4整数时,argc必须为5.

argcargv与您在程序中声明的变量数量无关。 argc表示从命令行运行时提供的参数数量。 argv是指向您的参数的char指针数组(包括程序本身的名称)。

假设您的程序名为proc。您需要从命令行运行它(或者您需要从IDE中找到如何提供命令行参数)。

./proc 5 10 15 20

数字5,10,15,20将是您的argv[1] .. argv[4]

答案 1 :(得分:0)

您应该从命令行输入不少于4个参数。

将参数分隔为space

答案 2 :(得分:0)

Int argc 是参数计数,表示您传递的参数数量,包括程序名称。

char指针数组表示参数