公布闲云控制台连载系列,会不定期增加新功能~
先发一个命令解析的框架
/************************************************** *******************闲云万能控制台********************* ********* ********* 作者: 闲云野鹤 ********* QQ: 836663997 ********* QQ群: 116920287 欢迎加入 ********* 邮箱: xianyun1230@163.com ********* 博客: blog.csdn.net/xianyun2009 ********* ********* 功能会一直更新。 ***************************************************/ #define _CRT_SECURE_NO_WARNINGS //vs中关闭安全开发周期(SDL)检測 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <memory.h> #include <conio.h> /***定义控制台的支持能力***/ #define MAX_CMD 100 //支持命令的最大数目 #define LEN_CMD 50 //命令中名称的最大的长度 #define LEN_ARGU 50 //命令中參数的最大的长度 #define LEN_OBJ 900 //命令中命令对象的最大的长度 #define LEN_SUMMARY 100 //命令简单介绍长度 /***用于处理区返回运行状态***/ #define OVER_CMD 5 //命令名称太长 #define OVER_ARGU 6 //命令參数太长 #define OVER_OBJ 7 //命令对象太长 /***用于运行区命令返回运行状态***/ #define NO 0 //运行失败 #define OK 1 //运行成功 #define ERR_NOCMD 2 //命令错误 #define ERR_ARGU 3 //參数错误 #define ERR_NOOBJ 4 //对象错误 typedef struct //输入命令的结构 { char Cmd_Name[LEN_CMD + 1]; //命令名称 char Cmd_Arguments[LEN_ARGU + 1]; //參数列表 char Cmd_Object[LEN_OBJ + 1]; //命令对象 }Command, *pCommand; typedef int (*CMD_FUN)(pCommand); typedef struct //命令结构,存放支持的命令 { char Cmd_Name[LEN_CMD]; //命令名称 CMD_FUN _Fun; //处理函数 char Cmd_Summary[LEN_SUMMARY]; }CMD_ITEM, *pCMD_ITEM; CMD_ITEM KEEP_CMD[MAX_CMD] = { 0 }; //用于存放注冊命令 unsigned int CUR_CMD_NUM = 0; //当前已注冊命令数目 /*********************************** ***处理命令*************************** 进行转换和分发命令**************** ************************************/ /***转换命令***/ int Translate_Command(char* _cmd_str, pCommand _cmd) { memset(_cmd, 0, sizeof(Command)); //_cmd所有置0 while ('