文章目录
具体实现如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h> void print_help(char *argv[]) { printf("Usage: %s [options]\n", argv[0]); printf("Options:\n"); printf(" -h, --help Print this help message\n"); printf(" -v, --version Print version information\n"); printf(" -a, --arg Argument option\n"); printf(" -b, --flag Flag option\n");
} int main(int argc, char *argv[]) { int opt; int arg_count = 0; int flag_count = 0; while ((opt = getopt(argc, argv, "havb:")) != -1) { switch (opt) { case 'h': case '--help': print_help(argv); exit(EXIT_SUCCESS); case 'v': case '--version': printf("Version: %s\n", VERSION); exit(EXIT_SUCCESS); case 'a': case '--arg': arg_count++; printf("Argument option %d: %s\n", arg_count, optarg); break; case 'b': case '--flag': flag_count++; printf("Flag option %d: %s\n", flag_count, optarg); break; default: printf("Error: Invalid option %c\n", opt); print_help(argv); exit(EXIT_FAILURE); } } return 0;
}
在这个示例中,我们使用了 getopt() 函数来解析命令行参数。我们定义了四个选项:-h/–help、-v/–version、-a/–arg 和 -b/–flag。当用户输入 -h 或 --help 时,程序会打印出帮助信息并退出。当用户输入 -v 或 --version 时,程序会打印出版本信息并退出。当用户输入 -a 或 --arg 时,程序会将其视为一个参数选项,并将其打印出来。当用户输入 -b 或 --flag 时,程序会将其视为一个标志选项,并将其打印出来。如果用户输入了无效的选项,程序会打印出错误信息并退出。