fork(2) download
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. std::string read(std::fstream&& file){
  5. std::string temp;
  6. std::string ret;
  7. while(file>>temp) ret += temp;
  8. return ret;
  9. }
  10.  
  11. int main(int argc, char** argv){
  12. char data[1000] = { 0 };
  13. char* dp = data; //data pointer
  14. std::string code;
  15. std::cin >> code;
  16. size_t it = 0;
  17. size_t nor = 0;
  18. while(it < code.size()){
  19. switch(code[it]){
  20. case '>':
  21. ++dp;
  22. break;
  23. case '<':
  24. --dp;
  25. break;
  26. case '+':
  27. ++(*dp);
  28. break;
  29. case '-':
  30. --(*dp);
  31. break;
  32. case '.':
  33. std::cout<<*dp;
  34. break;
  35. case ',':
  36. std::cin>>*dp;
  37. break;
  38. case '[':
  39. if(*dp == 0){
  40. int lc = 1; //loop counter
  41. while(lc != 0){
  42. ++it;
  43. if(code[it] == '[') ++lc;
  44. if(code[it] == ']') --lc;
  45. }
  46. }
  47. else
  48. nor = it;
  49. break;
  50. case ']':
  51. it = nor-1;
  52. break;
  53. default:
  54. break;
  55. }
  56. ++it;
  57. }
  58. std::cout<<"\nExecution time: TODO\nPress any key to exit...";
  59. }
Success #stdin #stdout 0s 3468KB
stdin
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
stdout
Hello World!

Execution time: TODO
Press any key to exit...