当用户键入 ./a.out -n 时,我怎么知道 n(正整数)是多少?

how do I know what n(positive integer) is when user types ./a.out -n?

如何使命令行参数成为变量?

也就是说,例如,当用户键入 ./a.out -n 时,我如何知道 n(正整数)是多少?

我知道我可以使用 strcmp(argv[1], "-1") strcmp(argv[1], "-100") 但是有没有更简单的方法来实现它?

您可以使用

strtol(argv[1])atoi(argv[1])

要获取整数,无需将其作为字符串进行比较并查看。

PS: atoi(NULL) 会导致UB。

检查下面的代码:

int main(int argc, char **argv)
{
   int n;
   if( argc >2)
   return 1;

   if(argv[1][0] == '-')
     n = atoi(argv[1] +1);
   else
      n= atoi(argv[1]);
   printf("%d\n",n);
   return 0;
}

假设-n是命令行可选参数,总是建议使用getoptArgp,并使用case检查它是否为正数整数。

有关使用它们的更多信息,请参阅以下 links http://www.gnu.org/software/libc/manual/html_node/Parsing-Program-Arguments.html

有关命令行参数的更多信息,以下link将对您有所帮助http://courses.cms.caltech.edu/cs11/material/c/mike/misc/cmdline_args.html