0

当我调用这个函数时,它总是返回 false 并停止程序。但我不知道为什么。

// checks to see if the second argument is a positive interger, 
// and that there is only one arg
    if (ArgCheck (argc, shift) == false)
   {
       printf("You may only input one non-negative argument.\n");
       return 1;
    }
    else
        return true;  

功能ArgCheck是:

int ArgCheck (int a, int b)
{
  if (a > 2)
        {
        return false;
        }
  else if (b < 0)
        {
        return false;  
        }
  else
    return 0;  
}

即使我在命令行中输入正确的参数,它仍然返回 false。我知道这是一个菜鸟问题,但我感谢您的帮助。

谢谢。

4

1 回答 1

1
int ArgCheck (int a, int b)
{
  if (a > 2)
        {
        return false;
        }
  else if (b < 0)
        {
        return false;  
        }
  else
    return 0;  
}

此函数始终返回 false。 0是一样的false。您的要求是:

如果第二个参数是正整数并且只有一个 arg,则返回 true

所以...

bool ArgCheck(int argCount, int value)
{
    return argCount == 1 && value >= 0;
}

请注意,我不允许参数计数为 0,因为您说需要一个参数。您当前的代码不允许任何参数。

于 2013-04-14T21:49:38.290 回答