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

📄 getopt.cpp

📁 入侵检测数据检测算法
💻 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 + -