fork download
  1. /* Brainfuck
  2.  *
  3.  * http://j...content-available-to-author-only...a.org/wiki/Brainfuck
  4.  */
  5. #include <stdio.h>
  6.  
  7. #define P5 "+++++"
  8. #define P10 P5 P5
  9. #define P20 P10 P10
  10. #define P50 P20 P20 P10
  11. #define C1 P50 P20 "++."
  12. #define C2 ">" P50 P50 "+."
  13. #define C3 P5 "++.."
  14. #define C4 "+++."
  15. #define Hello C1 C2 C3 C4
  16. #define SP ">" P10 P20 "++."
  17. #define C5 "<<" P10 P5 "."
  18. #define C6 ">."
  19. #define C7 "+++."
  20. #define C8 "<" P20 "+."
  21. #define C9 ">>" P50 P10 P5 "+++."
  22. #define World SP C5 C6 C7 C8 C9
  23.  
  24. #define HELLO_WORLD "+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+."
  25.  
  26. int main(void) {
  27. char data[30000] = {0};
  28. char code[] = HELLO_WORLD;
  29. char *dp = data;
  30. char *cp = code;
  31.  
  32. puts("#include <stdio.h>");
  33. puts("int main(void) {");
  34. puts("char data[30000] = {0};");
  35. puts("char *ptr = data;");
  36. while (*cp) {
  37. switch (*cp) {
  38. case '>': printf("ptr++;"); break;
  39. case '<': printf("ptr--;"); break;
  40. case '+': printf("(*ptr)++;"); break;
  41. case '-': printf("(*ptr)--;"); break;
  42. case '.': printf("putchar(*ptr);"); break;
  43. case ',': printf("*ptr = (char)getchar();"); break;
  44. case '[': printf("while (*ptr) {"); break;
  45. case ']': printf("}"); break;
  46. default: puts("Syntax Error!"); return 0;
  47. }
  48. cp++;
  49. }
  50. puts("");
  51. puts("return 0;");
  52. puts("}");
  53.  
  54. return 0;
  55. }
  56.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
#include <stdio.h>
int main(void) {
char data[30000] = {0};
char *ptr = data;
(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;while (*ptr) {ptr++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;ptr++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;ptr++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;ptr--;ptr--;ptr--;(*ptr)--;}ptr++;putchar(*ptr);ptr++;(*ptr)++;(*ptr)++;putchar(*ptr);(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;putchar(*ptr);putchar(*ptr);(*ptr)++;(*ptr)++;(*ptr)++;putchar(*ptr);ptr++;(*ptr)--;putchar(*ptr);(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;putchar(*ptr);ptr--;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;(*ptr)++;putchar(*ptr);(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;putchar(*ptr);(*ptr)++;(*ptr)++;(*ptr)++;putchar(*ptr);(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;putchar(*ptr);(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;(*ptr)--;putchar(*ptr);ptr++;(*ptr)++;putchar(*ptr);
return 0;
}