替代unistd.h getopt使用c ++ stl

时间:2015-04-06 03:36:04

标签: c++ c++11 stl argv

我正在为将在各种平台上使用的用户编写C ++命令行应用程序。出于这个原因,我只用stl写作。我想知道stl是否有一种很好的方法来解析类似于unistd.h/getopt.h中使用的getopt函数的输入参数(因为这些并不是我所知道的平台)。我已经考虑过做while/for loopswitch语句之类的事情,但想知道是否有更优雅的东西。 C ++ 11没问题,提升不是。

2 个答案:

答案 0 :(得分:0)

解决方法是编写自己的或使用boost。从C ++ 11开始,没有标准的" getopt"功能。

答案 1 :(得分:0)

标准 C++ 中确实没有办法,但 getopt 是 POSIX 标准,它涵盖了很多平台(Linux、*NIX、*BSD、MacOS、iOS、Android、Cygwin)。

在本机 Win32 上,只需将 wingetopt 之类的内容嵌入到您的项目中(BSD 许可)。此外,FreeBSD getopt.c 可以轻松移植(尽管它不支持长选项格式)。