码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++解析命令行参数

时间:2017-10-12 13:59:21      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:linux   c/c++   

相关库函数
#include <unistd.h>
#include <getopt.h>

int getopt(int argc, char * const argv[],const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;


int getopt_long(int argc, char * const argv[],const char *optstring,const struct option *longopts, int *longindex);
int getopt_long_only(int argc, char * const argv[],const char *optstring,const struct option *longopts, int *longindex);


eg1:

#include <stdio.h>
#include <getopt.h>

int main(int argc,char *argv[]) {

    int opt;
    char *optstring = "a:b:c:de"; // 分别代表-a,-b,-c,-d,-e命令行参数,其中带:的表示参数可以指定值,故de不能指定值

    while((opt = getopt(argc,argv,optstring)) != -1){
        printf("opt = %c\n",opt);
        printf("optarg = %s\n",optarg);
        printf("optind = %d\n",optind);
        printf("argv[optind-1] = %s\n\n",argv[optind-1]);

    }


    return 0;
}

#./test_arg -a 1 -b 2 -c 3 -d -e
opt = a
optarg = 1
optind = 3
argv[optind-1] = 1

opt = b
optarg = 2
optind = 5
argv[optind-1] = 2

opt = c
optarg = 3
optind = 7
argv[optind-1] = 3

opt = d
optarg = (null)
optind = 8
argv[optind-1] = -d

opt = e
optarg = (null)
optind = 9
argv[optind-1] = -e


本文出自 “程序员发展之路” 博客,请务必保留此出处http://xwandrew.blog.51cto.com/2909336/1971684

C/C++解析命令行参数

标签:linux   c/c++   

原文地址:http://xwandrew.blog.51cto.com/2909336/1971684

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!