提问:我想制作一个返回的值,但是一直不对,帮看一下

问题遇到的现象和发生背景
最近我制作了一个brain f**k的编译器,然后想制作一个按数字“1”键实现代码提示的功能,但是一直编译都不成功,帮忙看一下

问题相关代码

//================================================================
//  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年2月26日更新版");
    cout<<"                      Brain_NTF SE                       \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";
    cout<<"按数字1查看代码提示\n";
    c=getch();
    ssx=20;
    if(c=='1'); 
    {
        {
            SetConsoleTitle("代码提示页"); //标题
            cout<<"代码提示:\n"; 
            cout<<"此编程语言只有八种符号,代表的意义如下:\n";
            cout<<"符号> 代表指针加一  符号> 代表指针减一\n";
               cout<<"符号+ 代表指针指向的字节值加一\n";
            cout<<"符号- 代表指针指向的字节值减一\n";
            cout<<"符号. 代表输出指针指向的单元内容(ASCII)\n";
            cout<<"符号, 代表输入内容到指针指向的单元(ASCII)\n";
            cout<<"符号[ 代表指针指向的单元值为零,\n";
            cout<<"向后跳转到]指令的次一指令处\n";
            cout<<"符号] 代表指针指向的单元值不为零,\n";
            cout<<"先前跳转到对应的[指令的次一指令处\n";
            cd(); 
        }
        cd(); 
    }
    else
     
    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;
}
 




我想要达到的结果

实现跳转功能

你的代码里基础语法问题挺多的,还有一些函数,我都不知道从哪里来的。 cd()函数是干嘛的? 以及变量使用前要声明加类型的; 笔误多写; SetConsoleTitle("Brain_NTF SE 2022年2月26日更新版");这函数是想干嘛的

写代码的时候,建议理解自己写的啥,然后选个好点的编译器(建议用vs,工具可以直接检测出基本语法问题),从主函数开始,写一点代码,调试一下,不要一次写完,调试一脸懵逼。

我简单让他能运行 试着在vs2019上调试了一下, 分支上的业务逻辑我没去看细节,你可以试着用beyond compare对比一下看看你有哪些语法问题,也可以用vs工具调试一下。


//================================================================
//  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_s("%c", &k);
        s[kiss] = k;
    }
    if (c == '[')
    {
        dealk();
    }
}

int main()
{
    //SetConsoleTitle("Brain_NTF SE 2022年2月26日更新版");
    cout << "                      Brain_NTF SE                       \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";
    cout << "按数字1查看代码提示\n";
    char c = getchar();
    if (c == '1')
    {
        {
            //SetConsoleTitle("代码提示页"); //标题
            cout << "代码提示:\n";
            cout << "此编程语言只有八种符号,代表的意义如下:\n";
            cout << "符号> 代表指针加一  符号> 代表指针减一\n";
            cout << "符号+ 代表指针指向的字节值加一\n";
            cout << "符号- 代表指针指向的字节值减一\n";
            cout << "符号. 代表输出指针指向的单元内容(ASCII)\n";
            cout << "符号, 代表输入内容到指针指向的单元(ASCII)\n";
            cout << "符号[ 代表指针指向的单元值为零,\n";
            cout << "向后跳转到]指令的次一指令处\n";
            cout << "符号] 代表指针指向的单元值不为零,\n";
            cout << "先前跳转到对应的[指令的次一指令处\n";
            //cd();  //这两个函数是干嘛的?
        }
        //cd();
    }
    else
    {
        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;
}





你自己不会看编译报错?107行多了个分号,还有好多未定义的变量