zoukankan      html  css  js  c++  java
  • 使用getopt_long解析程序长选项参数

    写在前面:
    对于可选参数一定要使用以下两种方法标明其值 –wValue  或--who==Value 而不能是 --who Value,
    而对于必填参数则可以使用-lValue 或 --love Value或--love=Value,
    这并不是bug.
    //============================================================================
    // Name        : TestOpt.cpp
    // Author      : yangyh
    // Version     :
    // Copyright   : Your copyright notice
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    
    #include <iostream>
    #include <getopt.h>
    using namespace std;
    int version;
    struct option longopts[] = {
    		{ "version", no_argument, &version, 'v' },
    		{ "name", no_argument, NULL, 'n' },
    		{ "love", required_argument, NULL,'l' },
    		{ "who",optional_argument,NULL,'w'},
    		{ 0, 0, 0, 0 }
    	};
    int main(int argc, char *argv[]) {
    	int c;
    	while ((c = getopt_long(argc, argv, "vl:w::", longopts, NULL)) != -1) {
    		switch (c) {
    		case 'l':
    			printf("love = %s!\n", optarg);
    			break;
    		case 0:
    			//
    			printf("getopt_long()设置变量 : version = %c\n", version);
    			break;
    		case 'v':
    			printf("version..\n");
                            break;
          case 'w':
    			printf("who = %s\n",optarg);
    			break;
    
    
    		}
    	}
    	return 0;
    }
  • 相关阅读:
    Gitlab邮箱配置
    Zabbix邮件告警提示Couldn't resolve host name解决办法
    Gitlab备份和恢复操作
    Gitlab权限管理
    编译安装Nginx
    [0] 数据库读写分离
    [0] C# & MongoDB
    [0] 平衡二叉树
    [0] 分布式存储 Memcached
    [0] MSSQL 分库查询
  • 原文地址:https://www.cnblogs.com/yangyh/p/1989791.html
Copyright © 2011-2022 走看看