Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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++ 在Windows c++;?_C++_Windows_Posix_Getopt - Fatal编程技术网

C++ 在Windows c++;?

C++ 在Windows c++;?,c++,windows,posix,getopt,C++,Windows,Posix,Getopt,下面的代码是我使用的Posix C: while ((opt = getopt(argc, argv, "a:p:h")) != -1)

下面的代码是我使用的Posix C:

while ((opt = getopt(argc, argv, "a:p:h")) != -1)
<如何使用可选的函数将代码导入到Windows C++中?


谢谢

如果您搜索过,您会找到另一个线程,该线程会检查getopt的一些兼容性库,以及基于Windows的系统的其他实现

另一方面,您也可以使用va_arg、va_list、va_start和va_end函数来处理参数

/* va_arg example */
#include <stdio.h>      /* printf */
#include <stdarg.h>     /* va_list, va_start, va_arg, va_end */

int FindMax (int n, ...)
{
  int i,val,largest;
  va_list vl;
  va_start(vl,n);
  largest=va_arg(vl,int);
  for (i=1;i<n;i++)
  {
    val=va_arg(vl,int);
    largest=(largest>val)?largest:val;
  }
  va_end(vl);
  return largest;
}

int main ()
{
  int m;
  m= FindMax (7,702,422,631,834,892,104,772);
  printf ("The largest value is: %d\n",m);
  return 0;
}
/*va_参数示例*/
#包括/*printf*/
#包括/*va_列表、va_开始、va_参数、va_结束*/
int FindMax(int n,…)
{
int i,val,最大值;
va_列表vl;
va_启动(vl,n);
最大值=va_arg(vl,int);
对于(i=1;ival)?最大值:val;
}
va_端(vl);
回报最大;
}
int main()
{
int m;
m=FindMax(77024222631834892104772);
printf(“最大值为:%d\n”,m);
返回0;
}

参考资料:

微软在开源IoTivity项目中提供了一个很好的实现(以及一些其他帮助),您可以在这里重复使用(等待您的任何许可要求):

看看“getopt.h/.c”的“src”和“include”目录


getopt用于解释存储在单指针数组中的文本参数,最有可能解析命令行参数。可变函数不相似或不兼容。我认为OP在某些windows DLL中已经在寻找一个类似的函数,他们可以编写一个小的粘合函数来适应现有代码,而不是重新实现getopt。如果有人正在寻找在两种平台上都能工作的函数,您可以使用类似的函数。