Code:
{\rtf1\ansi\ansicpg1252
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red255\green255\blue255;}
\deftab720
\pard\pardeftab720\qc\partightenfactor0
\f0\fs22 \cf2 \cb3 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 #include <stdio.h>\
const int MAX_DEPTH = 100, MEM_SIZE = 30000;\
\
int main(int argc, char **argv) \{\
if(argc <= 1) \{ printf("You have to specify a filename. Usage:\\n<executable> <BF filename>\\n"); return 0; \}\
char mem[MEM_SIZE]; // 30,000 is default with Brainfuck\
int lindex[MAX_DEPTH];\
int depth = 0, len = 0, ptr = 0;\
FILE *f = fopen(argv[1], "r");\
if(f == 0) \{ printf("Invalid filename: %s\\n", argv[1]); return 0; \}\
int curr; while((curr = fgetc(f)) != EOF) \
\{\
switch((char) curr)\
\{\
case '+': ++(mem[ptr]); break;\
case '-': --(mem[ptr]); break;\
case '<': if(ptr > 0) --ptr; break;\
case '>': if(ptr < MEM_SIZE) ++ptr; break;\
case '.': putchar(mem[ptr]); break;\
case ',': mem[ptr] = getchar();getchar(); break;\
case '[': if(mem[ptr] == 0) \{\
int d = 0, i = ftell(f); char c = '\\0';\
while(!feof(f)) \{ ++i; c = fgetc(f); if(c == '[') \{ ++d; \} else if(c == ']') \{ if(d == 0) \{ fseek(f, i, SEEK_SET); break; \} else \{ --d; \} \} \}\
\} else\
lindex[depth++] = ftell(f);\
break;\
case ']': if(depth > 0 && mem[ptr] == 0) \{\} else \{ fseek(f, lindex[depth - 1], SEEK_SET); \} break;\
default: break;\
\};\
\}\
fclose(f);\
printf("\\n");\
\}}
That's a lot of \s ._.
Anyways, >+++++++++[<+++++++++>-]<+++.>+++++[<+++++>-]<++++++++++.--------.>++++++++[<-------->-]<---------------.>++++++++[<++++++++>-]<+++.--.>+++[<+++>-]<++++.>++++++++[<-------->-]<--------------.>++++++++[<++++++++>-]<++++++++++++++++.----.>+++[<--->-]<--.>++++[<++++>-]<++++++++.>+++++++++[<--------->-]<--------.>+++++++++[<+++++++++>-]<+++.>+++[<--->-]<---.-------.>++++[<++++>-]<+++.>+++++++++[<--------->-]<---.>++++++++[<++++++++>-]<+++++++.------.>+++[<+++>-]<+++.--------.>+++++++[<------->-]<------.