創(chuàng)建一個簡陋的基礎(chǔ)版腳本解析器
1:直接用你的代碼編輯工具創(chuàng)建一個命令行項目

創(chuàng)建項目
這個是main里的代碼
#include "pch.h"
#include <iostream>
int main()
{
std::cout << "開始腳本\n";
return 0;
}
運行之后會出現(xiàn) 開始腳本
2:把你生成的.exe文件目錄加到path里
windows是 我的電腦->右鍵->屬性->高級系統(tǒng)設(shè)置->高級->環(huán)境變量->找到path點擊編輯

打開path編輯界面
把你.exe的路徑加到path里,(vs項目:點擊運行后會在項目目錄的Debug里生成一個.exe)

添加路徑
3:現(xiàn)在運行cmd 輸入你的.exe名稱就能運行你的.exe了

qpl4.png
4:給.exe添加啟動參數(shù)
就是把沒有參數(shù)的main改成有參數(shù)的main
代碼
#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
printf("開始腳本\n");
cout << "你輸入了" << argc << "個參數(shù)" << endl;
cout << "腳本解析器路徑" << argv[0] << endl;
for (int i = 0; i < argc; i++) {
if (i != 0) {
cout << "第" << i << "個參數(shù)是" << argv[i] << endl;
}
}
printf("腳本結(jié)束");
return 0;
}
輸出

輸出
5:現(xiàn)在開始讀取自己創(chuàng)建的腳本文件(就是文本文件改成自己想要的后綴名)
這里文件后綴用.qplog 文件里只有一句話

腳本文件截圖
6:修改main文件讀取腳本
代碼
#include "pch.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <Windows.h>
using namespace std;
int main(int argc, char **argv)
{
cout << "腳本解析器路徑" << argv[0] << endl;
if (argc > 1) {
cout << "腳本文件地址" << argv[1] << endl;
fstream infile(argv[1]);
if (infile.is_open()) {
stringstream ss; // 創(chuàng)建字符串流對象
ss << infile.rdbuf(); // 把文件流中的字符輸入到字符串流中
string str = ss.str(); // 獲取流中的字符串
cout << "腳本內(nèi)容" << endl;
cout << str << endl;
}
else {
//文字顯示顏色,不用管
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED| FOREGROUND_INTENSITY);
cerr << "沒找到腳本文件" << endl;
//文字顯示顏色,不用管
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE );
}
infile.close();
}
printf("腳本結(jié)束");
return 0;
}
輸出

輸出
簡單的腳本解析器已經(jīng)完成,大佬們可以愉快的創(chuàng)建自己的腳本語言了
歡迎轉(zhuǎn)載,轉(zhuǎn)載請標(biāo)明出處