c++ - 解析多个命令行开关

标签 c++ command-line command-line-arguments

<分区>

我正在开发一个将扫描目录以获取文件信息的程序。将有可选的开关,用户可以将其放入以扫描特定文件组或以特定方式扫描,或以特定方式输出。

例如,如果用户输入:filesum -rRc,这将执行递归扫描,按升序输出文件,并且只扫描与 C++ 相关的文件扩展名 (.cpp|.h|。 hpp )。

我如何以最干净的方式做到这一点?我研究了 getopt 但我根本不了解它的实现,并且很难找到带有文档的好的示例。

我正在考虑将输入开关的命令行参数转换为一个字符串并通过它进行解析,但这不需要多个 if 语句来查看它是否只是参数中的一个开关或者是否有东西下面是可以做到的,比如-rc?或者我也在考虑根据输入的开关使用不同标志的 while 循环,但如果有更清晰、更简单的方法,我将不胜感激任何建议。谢谢。

如果可能的话,宁愿不使用任何第三方库。

最佳答案

最简洁的方法是使用 Boost program_options .

关于c++ - 解析多个命令行开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18028248/

相关文章:

c++ - 为什么 fmt 将 0.5 四舍五入到 0(小数点后为零)?

c++ - 对共享变量的无保护访问总是数据竞争吗?

linux - 如何清除 screen 命令中的回滚?

batch-file - 将 GLSL 编译为相应的 Spir V,以便在 Vulkan 应用程序中使用

powershell - 如何在PowerShell中 “grep”并显示周围的行/上下文?

shell -/bin/sh : read arguments from pipe separately

c# - 找不到 32 位 DLL 的入口点。使用 64 位 DLL

c++ - 友元函数返回 (void*) : cannot get implementation in . cpp 文件工作

visual-studio - 为什么每个用户都存储 Visual Studio 项目的命令行设置?是否可以 checkin (和共享).user 设置文件?

ios - 如何从命令行在 iOS 模拟器中设置默认设备