BrainFuck
2026-04-24 06:52:09
发布于:香港
发出来比较赶,请见谅
#include<conio.h>
#include<stdint.h>
uint8_t memory[30001];
char isut[60001];
uint16_t pointer;
uint16_t ipos;
int main(){
while(true){
char chr=_getch();
if(chr==27) break;
if(chr=='\b'){
if(ipos>0){
_cputs("\b \b");
ipos--;
}
}
else if(chr=='+'||chr=='-'||chr=='<'||chr=='>'||chr=='['||chr==']'||chr==','||chr=='.'){
_putch(chr);
isut[ipos++]=chr;
}
}
_putch('\n');
for(uint16_t idx=0;idx<ipos;idx++){
char chr=isut[idx];
switch(chr){
case '+':{
memory[pointer]++;
break;
}
case '-':{
memory[pointer]--;
break;
}
case '<':{
pointer--;
break;
}
case '>':{
pointer++;
break;
}
case '[':{
if(memory[pointer]==0){
int16_t count=1;
while(count>0){
idx++;
if(isut[idx]=='[') count++;
if(isut[idx]==']') count--;
}
}
break;
}
case ']':{
if(memory[pointer]!=0){
int16_t count=1;
while(count>0){
idx--;
if(isut[idx]==']') count++;
if(isut[idx]=='[') count--;
}
break;
}
}
case ',':{
memory[pointer]=_getch();
break;
}
case '.':{
_putch(memory[pointer]);
break;
}
}
}
}
全部评论 1
建议将
_getch()改为_getwch(),接受中文字符2天前 来自 辽宁
0























有帮助,赞一个