joannakr

Untitled

Jan 2nd, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <Windows.h>
  6.  
  7. int fun4();
  8. int fun5();
  9. int fun6();
  10. int fun7();
  11. int main()
  12. {
  13. int choice;
  14. SetConsoleOutputCP(1251);
  15. SetConsoleCP(1251);
  16. printf("Меню:\n");
  17. printf("1:четене програмата от файл и запис на резултата във файл(потребителят трябва да въведе имената на двата файла, като файла с програмата трябва да завършва с '.С')\n\n");
  18. printf("2:четене програмата от файл и извеждане на резултата на екрана(файлът въведен от потребителят трябва да завършва на '.С')\n\n");
  19. printf("3:четене на програмата от клавиатура и извеждане във файл зададен от потребителя\n\n");
  20. printf("4:четене на програмата от клавиатурата и извеждане на екрана\n\n");
  21. printf("Напишете вашия избор:");
  22. fflush(stdout);
  23. scanf("%d", &choice);
  24. switch (choice)
  25. {
  26. case 1:
  27. fun4();
  28. printf("Резултатите са във файла");
  29. break;
  30. case 2:
  31. fun5();
  32. break;
  33. case 3:
  34. fun6();
  35. printf("Резултатите са във файла");
  36. break;
  37. case 4:
  38. fun7();
  39. break;
  40. default:
  41. printf("ГРЕШКА!");
  42. }
  43. system("pause");
  44. return 0;
  45. }
  46. int fun4()
  47. {
  48. char line[300];
  49. int string_flag = 0;
  50. int emptyLine = 0;
  51. int logical = 0;
  52. char fpname[255], newfpname[255];
  53. printf("Въведи името на файла за четене :\n");
  54. scanf("%s", fpname);
  55. printf("Въведи името на файла за запис на резултата:\n");
  56. scanf("%s", newfpname);
  57. FILE *fp = fopen(fpname, "r");
  58. if (fp == NULL)
  59. {
  60. printf("ГРЕШКА: Файлът не може да се отвори!\n");
  61. return -1;
  62. }
  63. else
  64. if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
  65. {
  66. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  67. return -1;
  68. }
  69. {
  70. while (fgets(line, 300, fp))
  71. {
  72. int string_flag = 0, comment_flag = 0;
  73. int i = 0;
  74. int len = strlen(line);
  75. emptyLine++;
  76. for (i = 0; i < len; i++)
  77. {
  78. if (line[i] == '"')
  79. !string_flag;
  80. if (line[i] == '//' || line[i] == '/*')
  81.  
  82. {
  83. comment_flag = 1;
  84. string_flag = 0;
  85. }
  86.  
  87. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  88. {
  89. emptyLine--;
  90. break;
  91. }
  92. }
  93. if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
  94. {
  95. logical++;
  96. }
  97. }
  98.  
  99. }
  100. fclose(fp);
  101. if (newfpname[strlen(newfpname) - 2] != '.'&& newfpname[strlen(newfpname) - 1] != 'c')
  102. {
  103. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  104. return -1;
  105. }
  106. FILE *newfp = fopen(newfpname, "w");
  107. if (newfp)
  108. {
  109. fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  110. }
  111. fclose(newfp);
  112. return 0;
  113. }
  114. int fun5()
  115. {
  116. char line[300];
  117. int emptyLine = 0;
  118. int logical = 0;
  119. char fpname[255], newfpname[255];
  120. printf("Въведи името на файла за четене :\n");
  121. scanf("%s", fpname);
  122. FILE *fp = fopen(fpname, "r");
  123. if (fp == NULL) {
  124. printf("ГРЕШКА: Файлът не може да се отвори!\n");
  125. return -1;
  126. }
  127. else
  128. if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
  129. {
  130. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  131. return -1;
  132. } else
  133. {
  134. while (fgets(line, 300, fp)) {
  135. int i = 0;
  136. int len = strlen(line);
  137. emptyLine++;
  138. for (i = 0; i < len; i++) {
  139. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ') {
  140. emptyLine--;
  141. break;
  142. }
  143. }
  144. if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
  145. {
  146. logical++;
  147. }
  148. }
  149.  
  150. }
  151. printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  152. return 0;
  153. }
  154. int fun6()
  155. {
  156. char line[300];
  157. int emptyLine = 0;
  158. int logical = 0;
  159. char newfpname[255];
  160. printf("Въведи името на файла за запис на резултата:\n");
  161. fflush(stdout);
  162. scanf("%s", newfpname); printf(".txt");
  163. printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
  164. fflush(stdout);
  165. scanf("%s", &line);
  166. while (fgets(line, 300, stdin)) {
  167. int i = 0;
  168. int len = strlen(line);
  169. emptyLine++;
  170. for (i = 0; i < len; i++) {
  171. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ') {
  172. emptyLine--;
  173. break;
  174. }
  175. }
  176. if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
  177. {
  178. logical++;
  179. }
  180. }
  181.  
  182. FILE *newfp = fopen(newfpname, "w");
  183. if (newfp)
  184. {
  185. fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  186. }
  187. fclose(newfp);
  188. return 0;
  189. }
  190. int fun7()
  191. {
  192. char line[300];
  193. int emptyLine = 0;
  194. int logical = 0;
  195. printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
  196. fflush(stdout);
  197. scanf("%s", &line);
  198. while (fgets(line, 300, stdin))
  199. {
  200. int i = 0;
  201. int len = strlen(line);
  202. emptyLine++;
  203. for (i = 0; i < len; i++)
  204. {
  205. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  206. {
  207. emptyLine--;
  208. break;
  209. }
  210. }
  211. if (strstr(line, "while") || strstr(line, "do")&& strstr(line, "while") || strstr(line, "for"))
  212. {
  213. logical++;
  214. }
  215. }
  216. printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  217. if(line[strlen(line) - 1] == EOF)
  218. return 0;
  219. }
Advertisement
Add Comment
Please, Sign In to add comment