Getopt帮助需要c++
getopt help needed c++
我有以下代码,我不确定如何在从命令行运行时在-参数之后为文件位置添加可选参数。我读了很多书,但我就是觉得很困惑。以下是当前的代码:
int c;
while ((c = getopt(argc, argv, "vdras")) != EOF) {
switch (c) {
case 'v': v = true;
break;
case 'd': d = true;
break;
case 'r' : r = true;
break;
case 'a' : a = true;
break;
case 's' : s = true;
break;
}
}
argc -= optind;
argv += optind;
我现在需要能够做的是在所有这些命令(或这些命令的子集)的末尾添加一个文件。
因此,我可以输入-rda filehere或-a filehere或只是filehere作为程序的有效参数。
我一直在阅读这个链接,它使我相信在所有命令行选项之间放置双分号,因此它看起来像:
while ((c = getopt(argc, argv, "::v::d::r::a::s::")) != EOF) {
允许我在条件之后指定可选参数,但是我不知道如何捕获它们。就像在,我一直试图使情况下,我输入一个随机的文件名,并让它打印出一些测试代码,只是让我知道它的工作,但我似乎不能得到它的权利。我想知道我是否需要以某种方式将*optarg纳入我的开关,这将允许我获得以下选项的任何参数,但我真的不确定如何去做。任何解释都可以。
你看手册了吗?选项参数,如果有,将在全局变量optarg
中。
连你的链接都是一样的。您的选项字符串也不需要前面的::
-只有字母后面的那些才有意义。
编辑:这里有一个完整的工作示例,看起来像是你想要做的:
#include <unistd.h>
#include <iostream>
int main(int argc, char **argv)
{
int ch;
while ((ch = getopt(argc, argv, "v:")) != -1)
{
switch (ch)
{
case 'v':
std::cout << optarg << std::endl;
break;
}
}
return 0;
}
和输出:
$ ./example -v abcde
abcde
相关文章:
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 有人可以帮助我处理正则表达式吗?
- C++调用具有 *this 属性的单个帮助程序函数
- C++:需要帮助了解运算符重载错误
- 需要以下代码的帮助,下面的代码有什么问题
- CS1 项目帮助C++
- 用于检查值是否为其任何参数的帮助程序函数
- 需要有关此 if 语句的帮助
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- NS3 插槽混淆(需要帮助理解)
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 需要帮助查找内存泄漏
- 有人可以帮助我理解这些参数/参数吗?