📄 getopt.cpp
字号:
/************************************************************************
* Command Analysis
************************************************************************/
#include <stdio.h>
int optind = 1;
char *optarg; // 命令参数的系数
/////////////////////////////////////////////////////////////////////
// 一次处理一个命令行参数
/////////////////////////////////////////////////////////////////////
int getopt(int Argc, char **Argv, char *Str)
{
int Optchar;
char *Option;
// 命令行参数个数 = 0 或 1 //////////////////
if ( optind >= Argc ) return EOF;
// 指向当前要处理的命令行参数 ///////////////
Option = Argv[optind++];
// 命令行参数第一个字符处理,非法格式处理 ///
if ( *Option++ != '-' ) return '?';
// Optchar 指向命令行参数字符(第2个字符) //
Optchar = *Option++;
// 在命令行参数表中匹配命令行参数字符 ///////
while ( *Str && *Str != Optchar ) Str++;
// 命令参数 Option 不匹配,非法格式处理 /////
if ( ! *Str ) return '?';
// 命令参数 Option 匹配
if ( *++Str == ':' ) {
// 有系数命令行参数处理
if ( *Option ) { // 命令行参数与系数之间没有空格
optarg = Option;
}
else if ( optind < Argc ) { // 命令行参数与系数之间有空格
optarg = Argv[optind++];
}
else {
Optchar = '?'; // 非法命令行参数格式
}
}
/* 返回要处理的命令行参数 */
return Optchar;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -