fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <ctime>
  4. #include <fstream>
  5. #include <windows.h>
  6. #pragma once
  7. using namespace std;
  8.  
  9. int counter(FILE *File){
  10. int i = 0;
  11. int s;
  12. do {
  13. s = fgetc(File);
  14. if (s == '"')
  15. i++;
  16. } while (s != EOF);
  17. rewind(File);
  18. i = 1 + rand() % (i - 1);
  19. return i;
  20. }
  21. void output(FILE *File, int i) {
  22. fgetc(File);
  23. int j = 1;
  24. while (j != i) {
  25. if (fgetc(File) == '"')
  26. j++;
  27. }
  28. char c = fgetc(File);
  29. while (c != '"') {
  30. cout << c;
  31. c = fgetc(File);
  32. }
  33. }
  34. void random_place(){
  35. FILE * placeFile = fopen("rPlace.txt", "r");
  36. int i = counter(placeFile);
  37. output(placeFile, i);
  38. fclose(placeFile);
  39. }
  40. int random_item(int a, bool tr){
  41. FILE * itemFile = fopen("rItem.txt", "r");
  42. int i;
  43. if (tr == true)
  44. i = counter(itemFile);
  45. else i = a;
  46. output(itemFile, i);
  47. fclose(itemFile);
  48. return i;
  49. }
  50. void random_action(){
  51. FILE * actionFile = fopen("rAction.txt", "r");
  52. int i = counter(actionFile);
  53. output(actionFile, i);
  54. fclose(actionFile);
  55. }
  56. void add(FILE *File, char *b) {
  57. OemToCharA(b, b);
  58. for (int i = 0; b[i-1] != '"'; i++){
  59. fputc(b[i], File);
  60. }
  61. system("cls");
  62. cout << "Added \n";
  63. }
  64. void out(){
  65. int actionA = 0;
  66. cout << "Иду я как то по ";
  67. random_place();
  68. cout << ", вдруг вижу - ";
  69. actionA = random_item(actionA, true);
  70. cout << "! Мне конечно чужого не надо. Определяю хозяина путём ";
  71. random_action();
  72. cout << ", связываюсь с ним, а там 'Слышь, падла!Верни ";
  73. random_item(actionA, false);
  74. cout << " в течение " << rand() % 15 + 1 << " минут! \n \n \n";
  75. }
  76.  
  77. int main()
  78. {
  79. int a;
  80. srand(time(NULL));
  81. setlocale(LC_ALL, "Russian");
  82. FILE * placeFile = fopen("rPlace.txt", "a");
  83. FILE * itemFile = fopen("rItem.txt", "a");
  84. FILE * actionFile = fopen("rAction.txt", "a");
  85. zero:
  86. cout << "Выберите действие: \n" << "1. Сгенерировать историю \n" << "2. Добавить место \n" << "3. Добавить предмет\n" << "4. Добавить способ вычисления\n" << "0. Выход \n";
  87. cin >> a;
  88. char* b = new char[255];
  89. switch (a) {
  90. case 1:
  91. out();
  92. goto zero;
  93. break;
  94. case 2:
  95. cout << "Введите новое место. Ввод завершите символом \"\n";
  96. cin.ignore();
  97. cin.getline(b, 255);
  98. add(placeFile, b);
  99. goto zero;
  100. break;
  101. case 3:
  102. cout << "Введите новый предмет. Ввод завершите символом \"\n";
  103. cin.ignore();
  104. cin.getline(b, 255);
  105. add(itemFile, b);
  106. goto zero;
  107. break;
  108. case 4:
  109. cout << "Введите новое действие. Ввод завершите символом \"\n";
  110. cin.ignore();
  111. cin.getline(b, 255);
  112. add(actionFile, b);
  113. goto zero;
  114. break;
  115. case 0:
  116. goto one;
  117. default :
  118. system("cls");
  119. cout << "Неверный пункт меню. Попробуйте еще раз \n";
  120. goto zero;
  121. }
  122. one:
  123. delete[] b;
  124. fclose(actionFile);
  125. fclose(itemFile);
  126. fclose(placeFile);
  127. system("pause");
  128. return 0;
  129. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:5:21: fatal error: windows.h: No such file or directory
compilation terminated.
stdout
Standard output is empty