c中有两个不同的命令行参数

时间:2015-01-05 22:49:34

标签: c command-line-arguments

我想解析两个不同的命令行参数:

file -f something -o something

我在互联网上找到了一些代码并且我改变了它但我无法解析它们。

int
main (int argc, char **argv)
{
  char *fvalue = NULL;
  char *ovalue = NULL;
  int index;
  int c;

  opterr = 0;
  while ((c = getopt (argc, argv, "fo:")) != -1)
    switch (c)
      {
      case 'f':
        fvalue = optarg;
        break;
      case 'o':
        ovalue = optarg;
        break;
      default:
        abort ();
      }
  printf ("fvalue = %s, ovalue = %s\n",
          fvalue, ovalue);

  for (index = optind; index < argc; index++)
    printf ("Non-option argument %s\n", argv[index]);
  return 0;
}

1 个答案:

答案 0 :(得分:2)

您的optstring错误,必须是

while ((c = getopt (argc, argv, "f:o:")) != -1)

冒号表示该选项需要参数。