fork download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4.  
  5. void operator "" _bf (const char* code, size_t len) {
  6. // see ideone.com/sGPtvn
  7. char* m = (char*) malloc(100 *sizeof(char));
  8. int* cs = (int*) malloc(10 *sizeof(int ));
  9.  
  10. memset(m, 0, sizeof(m));
  11.  
  12. int i = 0, mi = 0, ci = -1;
  13.  
  14. while(i<len){
  15. switch(code[i])
  16. {
  17. case '+':
  18. m[mi]++;
  19. break;
  20. case '-':
  21. m[mi]--;
  22. break;
  23. case '<':
  24. mi--;
  25. break;
  26. case '>':
  27. mi++;
  28. break;
  29. case ',':
  30. m[mi] = getchar();
  31. break;
  32. case '.':
  33. putchar(m[mi]);
  34. break;
  35. case '[':
  36. cs[++ci] = i;
  37. break;
  38. case ']':
  39. if (m[mi]==0){
  40. ci--;
  41. } else
  42. {
  43. i = cs[ci];
  44. }
  45. break;
  46. }
  47. i++;
  48. }
  49. }
  50.  
  51. int main() {
  52. "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>."_bf;
  53. return 0;
  54. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
Hello World!