⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getopt.c

📁 des算法实现源码
💻 C
字号:
/* * Do not use this code unless you are compiling for MS-DOS.  It doesn't work * on unix.  I just found it somewhere on the net.  (D.A.B.  01-Apr-94) */#include <stdio.h>#include <string.h>#ifdef __cpluscplusextern "C" {#endif/* * get option letter from argument vector */int     opterr = 1,             /* useless, never set or used */        optind = 1,             /* index into parent argv vector */        optopt;                 /* character checked for validity */char    *optarg;                /* argument associated with option */#define BADCH   (int)'?'#define EMSG    ""#define tell(s) fputs(*nargv,stderr);fputs(s,stderr); \                fputc(optopt,stderr);fputc('\n',stderr);return(BADCH);getopt(nargc,nargv,ostr)int     nargc;char    **nargv,        *ostr;{        static char     *place = EMSG;  /* option letter processing */        register char   *oli;           /* option letter list index */        if(!*place) {                   /* update scanning pointer */                if(optind >= nargc || *(place = nargv[optind]) != '-' 	|| !*++place) return(EOF);                if (*place == '-') {    /* found "--" */                        ++optind;                        return(EOF);                }        }                               /* option letter okay? */        if ((optopt = (int)*place++) == (int)':' || !(oli =strchr(ostr,optopt))) {                if(!*place) ++optind;                tell(": illegal option -- ");        }        if (*++oli != ':') {            /* don't need argument */                optarg = NULL;                if (!*place) ++optind;        }        else {                          /* need an argument */                if (*place) optarg = place;     /* no white space */                else if (nargc <= ++optind) {   /* no arg */                        place = EMSG;                        tell(": option requires an argument -- ");                }                else optarg = nargv[optind];    /* white space */                place = EMSG;                ++optind;        }        return(optopt);                 /* dump back option letter */}#ifdef __cpluscplus}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -