-
Notifications
You must be signed in to change notification settings - Fork 0
/
Brainfuck_to_C.cpp
39 lines (39 loc) · 917 Bytes
/
Brainfuck_to_C.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
int main()
{
char ch;
cout << "#include <stdio.h>\nchar arr[30000]={0};\nchar *ptr=arr;\nint main()\n{\n";
while (cin >> ch)
{
switch (ch)
{
case '>':
cout << "((ptr == &arr[29999])?(ptr = &arr[0]):(ptr++));";
break;
case '<':
cout << "((ptr == &arr[0])?(ptr = &arr[29999]):(ptr--));";
break;
case '+':
cout << "++*ptr;";
break;
case '-':
cout << "--*ptr;";
break;
case '.':
cout << "putchar(*ptr);";
break;
case ',':
cout << "*ptr=getchar();";
break;
case '[':
cout << "while (*ptr)\n{";
break;
case ']':
cout << "}";
}
cout << "\n";
}
cout << "return 0;\n}";
return 0;
}