gpt4 book ai didi

c++ - getopt 总是返回 1

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:39 24 4
gpt4 key购买 nike

我想使用 getopt 来获取我的控制台工具的参数列表。当我像下面那样调用我的工具时,getopt 总是返回 1 并且不匹配任何 switch/case

我做错了什么吗?

  mytool -f farg -d darg

int
main(int argc, char** argv) {
int c;
while((c = getopt(argc, argv, "f:d:h") != -1)) {

switch(c) {
case'f':
break;

default:
break;
}
}

最佳答案

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

它的工作原理是

c = (getopt(argc, argv, "f:d:h") != -1)

嗯,那总是 1,因为比较的结果存储在 c 中。在您的情况下,getopt 不会返回 -1。如果它返回 -1,则 c 将为 0。修复是

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

关于c++ - getopt 总是返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com