gpt4 book ai didi

C - getopt 切换 while 循环和无效选项的默认情况

转载 作者:行者123 更新时间:2023-11-30 16:41:37 25 4
gpt4 key购买 nike

如果输入了无效的选项/命令,我想让程序达到默认情况,但它甚至不进入 while 循环。我想知道我做错了什么,以及我需要更改什么才能使其正常工作,它只有在使用正确的情况下才有效。 :)

#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
int main (int argc, char *argv[]){

const char *optstring = "rs:pih";
char option;

while ((option = getopt(argc, argv, optstring)) != EOF) {

printf("I'm in the while loop!");

switch (option) {
case 'r':
break;
case 's':
printf("Second Argument: %s", optarg);
break;
case 'p':
printf("p");
break;
case 'i':
printf("i");
break;
case 'h':
printf("h");
break;
default:
printf("nothing");

}

}

return 0;
}

最佳答案

来自评论:

./program_name d doesn't have a flag. Try: ./program_name -r -s foo -p

您还可以通过以下方式打印未解析的剩余选项:

for (int i = optind; i < argc; i++) {
printf("remaining argument[%d]: %s\n", i, argv[i]);
}

关于C - getopt 切换 while 循环和无效选项的默认情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46188458/

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