由ccommandlineinfo繼承乙個子類,
ccommandlineinfosubclass cmdinfo;
//調式版和release版還不相同
//由呼叫者傳進來的時候, i = 0;
//由ide中帶引數進行除錯的時候, i = 1
int nstartbyide = 0;
for (int i = nstartbyide; i < __argc; i++)
cmdinfo.parseparam(pszparam, bflag, blast);
}過載子類的parseparam
virtual void parseparam(const tchar* pszparam, bool bflag, bool blast);
把pszparamz中得來的引數乙個乙個的放到約定的不同資料中.
跟進ccommandlineinfo裡面看一下.
<2010_1113_1346>
參考:<2010_1113_2127>
ccommandlineinfo本身的處理不靈活, 只能接受乙個引數.
找到乙個靈活的命令列處理類, 正是想要的效果
//#include "stdafx.h"
#include #include "cmdargumentsparse.h"
#include "arguments.h"
#ifdef _debug
#define new debug_new
#undef this_file
static char this_file = __file__;
#endif
/using namespace std;
/** @note
* 定義命令列輸入的參數列,
* 降低命令列構造, 使用, 維護的工作量 */
#define g_int_cmd_para_row_max 7 /**< 命令的數目*/
#define g_int_cmd_para_col_max 8 /**< 命令陣列的列數目, 用於構造命令輸入定義和分析命令列輸入*/
pchar const gpccmdlineparameter [g_int_cmd_para_row_max][g_int_cmd_para_col_max] =
, /** @note
* 選項沒有引數, 例如 cmd -version
*/, /** @note
* 加入帶1個選項的引數, 選項的值必須輸入,
* 有幾個選項, 就必須在此引數的後面用空格分開, 輸入規定個數的選項值
* 例如 /out:"debug/cmdargumentsparse.exe"
* 不過我們要輸入 /out "debug/cmdargumentsparse.exe", 選項和引數值之間的分割符是空格
*/, ,
/** @note
* 加入帶1個選項的引數, 選項的值有預設值,
* 在命令列可以不用輸入具體的選項值, 但是引數名要輸入, 否則此引數功能無效
* 如果輸入的話, 指定的選項值代替預設選項值
*/, /** @note
* 加入帶多個選項的引數, 選項的值必須輸入,
* 有幾個選項, 就必須在此引數的後面用空格分開, 輸入規定個數的選項值
* 例如 /out:"debug/cmdargumentsparse.exe"
* 不過我們要輸入 /out "debug/cmdargumentsparse.exe", 選項和引數值之間的分割符是空格
*/, /** @note
* 加入帶多個選項的引數, 選項的值有預設值,
* 在命令列可以不用輸入具體的選項值, 但是引數名要輸入, 否則此引數功能無效
* 如果輸入的話, 指定的選項值代替預設選項值
*/, /** @note
* 必須傳遞的選項引數值, 沒有選項值
* '不輸入引數名稱, 直接輸入引數值', 必須在其他引數最後嚴格輸入
* 而且規定的所有引數必須在命令列輸入全
* 這不符合多引數傳遞的要求, 不能在實際工程中使用
* 這種輸入形式可以用'加入帶1個選項的引數'的用法代替.
* carg.addargument( "memorymin", "能保證程式執行的計算機記憶體最小配置");
*/};int makecmdparameter(carguments & carg);
int parsecmdparameter(carguments & carg);
int _tmain(int argc, tchar* argv, tchar* envp)
else }
getchar();
return nretcode;
}int makecmdparameter(carguments & carg)
/** 有引數, 選項2個, 沒有選項預設值 */
else if((gpccmdlineparameter[n][2] != null) &&
(gpccmdlineparameter[n][3] != null) &&
(gpccmdlineparameter[n][4] == null) &&
(gpccmdlineparameter[n][5] != null) &&
(gpccmdlineparameter[n][6] != null) &&
(gpccmdlineparameter[n][7] == null))
/** 有引數, 選項1個, 有選項預設值 */
else if((gpccmdlineparameter[n][2] != null) &&
(gpccmdlineparameter[n][3] != null) &&
(gpccmdlineparameter[n][4] != null))
/** 有引數, 選項1個, 沒有選項預設值 */
else if((gpccmdlineparameter[n][2] != null) &&
(gpccmdlineparameter[n][3] != null) &&
(gpccmdlineparameter[n][4] == null))
/** 只有引數, 沒有選項 */
else if((gpccmdlineparameter[n][2] == null) &&
(gpccmdlineparameter[n][3] == null) &&
(gpccmdlineparameter[n][4] == null))
else}}
return nrc;
}int parsecmdparameter(carguments & carg)
else
pargument = "usetempfile";
if(carg[pargument])
pargument = "memoryinformation";
if(carg[pargument])
//... 分析並儲存其他引數
} }else
return nrc;
}
mysql js 命令列登入 命令列操作
一 安裝nodejs window安裝cnpm npm i g cnpm registry 二 linux命令 安裝nodejs或者cnpm時,因為是全域性安裝的,要用到root許可權,所以要用sodu命令。只要能查到版本號就說明裝好了。1.比如 安裝cnpm sudo npm i g cnpm r...
mysql命令列cmd CMD命令列操作MySQL
連線mysql伺服器 mysql u使用者名稱 p密碼 mysql u使用者名稱 p enter password 輸入密碼 無密碼則直接回車 mysql h主機名 u使用者名稱 p密碼 d資料庫名稱 退出 exit quit q ctrl c 顯示幫助資訊 h 取消本行命令 c 取消當前未完成的操...
mysql 命令列 回車 mysql命令列操作
顯示資料庫 show databases 當前資料庫 select database 顯示表show tables 更改表名稱 alter table 原表名 rename 新錶名 rename table 原表名 to 新錶名 檢視系統支援的引擎 show engines 檢視表的引擎 show ...