欢迎光临散文网 会员登陆 & 注册

C++制作brain fuck 编译器(最终版)

2022-02-20 12:09 作者:夏夜wandpace  | 我要投稿

其实这个版本也没更新啥,就是做了汉化,还有更新了一下界面,时候就基本没更新什么了。

建议使用DEV-C++ 5.11制作,至于为什么,因为我就是用这个做的,其他的版本喝其他的编译器会不会出问题我就不知道了。有问题可以问我。

下面是完整代码:

//================================================================

//  Name                   :Brain_NTF.cpp

//  Author                 :

//  Version                :SE2022

//  Copyright              :

//================================================================

//导入头文件 

#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)         

#include <algorithm>

#include <set>

#define maxn 100001

#define eps 1e-9

#include <iostream>

#include <cstdio>

#include <vector>

#include <sstream>

#include <queue>

#include <typeinfo>

#include <fstream>

#include <map>

#include <windows.h>

#include <cmath>

#include <cstring>

#include <ctime>

typedef long long ll;

using namespace std;

const int inf=0x7fffffff;

string s;

vector<char> a;

int kiss;

int i;

void dealk()

{

    void deal(char c);

    int start=i;

    while(1)

    {

        i++;

        if(s[i]==']')

        {

            if(a[kiss]==0)

            {

                break;

            }

            else

            {

                i=start;

                continue;

            }

        }

        deal(s[i]);

    }

}

void deal(char c)

{

    if(c=='+')

        a[kiss]++;

    if(c=='-')

        a[kiss]--;

    if(c=='>')

    {

        kiss++;

        if(kiss>=a.size())

            a.push_back(0);

    }

    if(c=='<')

    {

        kiss--;

        if(kiss<0)

        {

            a.insert(a.begin(),i);

            kiss=0;

        }

    }

    if(c=='.')

    {

        int m=a[kiss];

        printf("%c",m);

    }

 

    if(c==',')

    {

        char k;

        scanf("%c",&k);

        s[kiss]=k;

    }

    if(c=='[')

    {

        dealk();

    }

}

 

int main()

{

    SetConsoleTitle("Brain_NTF SE_2022_13a");

    cout<<"                 Brain_NTF SE_2022_13c                   \n";

    cout<<"=======================关于此程序========================\n";

    cout<<"|              此程序基于MSDOS技术所制作                 |\n";

    cout<<"|          此程序序列号::6N23Y-7850H-6045H              |\n";

    cout<<"|               Brain_NTF 2022-2023(R)                   |\n";

    cout<<"|         严禁非法拷贝,未经过许可不能私自转载           |\n";

    system("color 06");

    cout<<"**********************请在下方写代码**********************\n";

    while(cin>>s)

    {

        a.clear();//每次开始运行都清空一次vector 

a.push_back(0);

    kiss=0;//使用全局变量kiss 

        for(i=0;i<s.size();i++)

        {

            deal(s[i]);

        }

    }

    return 0;

}

 


C++制作brain fuck 编译器(最终版)的评论 (共 条)

分享到微博请遵守国家法律