joannakr

Untitled

Jan 8th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.60 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 Readfiletofile();
  8. int Readfiletoscreen();
  9. int Readceyboardtofile();
  10. int Readceyboardtoscreen();
  11. int main()
  12. {
  13. int choice;
  14. SetConsoleOutputCP(1251);
  15. SetConsoleCP(1251);
  16. printf(" Меню:\n");
  17. printf("1:четене програмата от файл и запис на резултата във файл\n(потребителят трябва да въведе имената на двата файла, като файла с програмата трябва да завършва с '.С')\n\n");
  18. printf("2:четене програмата от файл и извеждане на резултата на екрана\n(файлът въведен от потребителят трябва да завършва на '.С')\n\n");
  19. printf("3:четене на програмата от клавиатура и извеждане във файл зададен от потребителя\n\n");
  20. printf("4:четене на програмата от клавиатурата и извеждане на екрана\n\n");
  21. printf("Напишете вашия избор:");
  22. scanf("%d", &choice); //фактически параметър
  23. switch (choice)
  24. {
  25. case 1:
  26. system("cls");
  27. Readfiletofile();
  28. printf("Резултатите са във файла");
  29. break;
  30. case 2:
  31. system("cls");
  32. Readfiletoscreen();
  33. break;
  34. case 3:
  35. system("cls");
  36. Readceyboardtofile();
  37. printf("Резултатите са във файла");
  38. break;
  39. case 4:
  40. system("cls");
  41. Readceyboardtoscreen();
  42. break;
  43. default:
  44. printf("ГРЕШКА!");
  45. }
  46. system("pause");
  47. return 0;
  48. }
  49. int Readfiletofile()
  50. {
  51. char line[300];
  52. int string_flag = 1, comment_flag = 1;
  53. int emptyLine = 0;
  54. int logical = 0;
  55. char fpname[255], newfpname[255];
  56. printf("Въведи името на файла за четене :\n");
  57. scanf("%s", fpname);
  58. printf("Въведи името на файла за запис на резултата:\n");
  59. scanf("%s", newfpname);
  60. FILE *fp = fopen(fpname, "r");
  61. if (fp == NULL)
  62. {
  63. printf("ГРЕШКА: Файлът не може да се отвори!\n");
  64. return -1;
  65. }
  66. else
  67. if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
  68. {
  69. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  70. return -1;
  71. }
  72. while (fgets(line, 300, fp))
  73. {
  74. int i = 0;
  75. int len = strlen(line);
  76. emptyLine++;
  77. for (i = 0; i < len; i++)
  78. {
  79. if ((line[i] == '"') && (line[i - 1] != '\\'))
  80. {
  81. if (string_flag == 1)
  82. string_flag--;
  83. else
  84. string_flag++;
  85. }
  86. if ((line[i] == '/') && (line[i + 1] == '/'))
  87. break;
  88. if ((line[i] == '/') && (line[i + 1] == '*'))
  89. comment_flag--;
  90. if ((line[i] == '*') && (line[i + 1] == '/'))
  91. comment_flag++;
  92.  
  93. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  94. {
  95. emptyLine--;
  96. break;
  97. }
  98. }
  99. if (string_flag && comment_flag)
  100. {
  101. if (line[i] == 'f' && line[i + 1] == 'o'&&line[i + 2] == 'r' || line[i] == 'w' && line[i + 1] == 'h'&&line[i + 2] == 'i'&&line[i + 3] == 'l' && line[i + 4] == 'e'||line[i]=='d'&&line[i+1]=='o'&&line[i+2]=='{'|| line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 3] == '{')
  102. {
  103. logical++;
  104. }
  105.  
  106. }
  107. }
  108. fclose(fp);
  109. if (newfpname[strlen(newfpname) - 2] != '.'&& newfpname[strlen(newfpname) - 1] != 'c')
  110. {
  111. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  112. return -1;
  113. }
  114. FILE *newfp = fopen(newfpname, "w");
  115. if (newfp)
  116. {
  117. fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  118. }
  119. fclose(newfp);
  120. return 0;
  121. }
  122. int Readfiletoscreen()
  123. {
  124. char line[300];
  125. int string_flag = 1, comment_flag = 1;
  126. int emptyLine = 0;
  127. int logical = 0;
  128. char fpname[255], newfpname[255];
  129. printf("Въведи името на файла за четене :\n");
  130. scanf("%s", fpname);
  131. FILE *fp = fopen(fpname, "r");
  132. if (fp == NULL) {
  133. printf("ГРЕШКА: Файлът не може да се отвори!\n");
  134. return -1;
  135. }
  136. else
  137. if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
  138. {
  139. printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
  140. return -1;
  141. }
  142. else
  143. while (fgets(line, 300, fp))
  144. {
  145. int i = 0;
  146. int len = strlen(line);
  147. emptyLine++;
  148. for (i = 0; i < len; i++)
  149. {
  150. if ((line[i] == '"') && (line[i - 1] != '\\'))
  151. {
  152. if (string_flag == 1)
  153. string_flag--;
  154. else
  155. string_flag++;
  156. }
  157. if ((line[i] == '/') && (line[i + 1] == '/'))
  158. break;
  159. if ((line[i] == '/') && (line[i + 1] == '*'))
  160. comment_flag--;
  161. if ((line[i] == '*') && (line[i + 1] == '/'))
  162. comment_flag++;
  163.  
  164. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  165. {
  166. emptyLine--;
  167. break;
  168. }
  169. }
  170. if (string_flag && comment_flag)
  171. {
  172. if (line[i] == 'f' && line[i + 1] == 'o'&&line[i + 2] == 'r' || line[i] == 'w' && line[i + 1] == 'h'&&line[i + 2] == 'i'&&line[i + 3] == 'l' && line[i + 4] == 'e' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 2] == '{' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 3] == '{')
  173. {
  174. logical++;
  175. }
  176.  
  177. }
  178. }
  179. printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  180. return 0;
  181. }
  182. int Readceyboardtofile()
  183. {
  184. char line[300];
  185. int string_flag = 1, comment_flag = 1;
  186. int emptyLine = 0;
  187. int logical = 0;
  188. char newfpname[255];
  189. printf("Въведи името на файла за запис на резултата:\n");
  190. scanf("%s", newfpname);
  191. printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
  192. scanf("%s", &line);
  193. while (fgets(line, 300, stdin))
  194. {
  195. int i = 0;
  196. int len = strlen(line);
  197. emptyLine++;
  198. for (i = 0; i < len; i++)
  199. {
  200. if ((line[i] == '"') && (line[i - 1] != '\\'))
  201. {
  202. if (string_flag == 1)
  203. string_flag--;
  204. else
  205. string_flag++;
  206. }
  207. if ((line[i] == '/') && (line[i + 1] == '/'))
  208. break;
  209. if ((line[i] == '/') && (line[i + 1] == '*'))
  210. comment_flag--;
  211. if ((line[i] == '*') && (line[i + 1] == '/'))
  212. comment_flag++;
  213.  
  214. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  215. {
  216. emptyLine--;
  217. break;
  218. }
  219. }
  220. if (string_flag && comment_flag)
  221. {
  222. if (line[i] == 'f' && line[i + 1] == 'o'&&line[i + 2] == 'r' || line[i] == 'w' && line[i + 1] == 'h'&&line[i + 2] == 'i'&&line[i + 3] == 'l' && line[i + 4] == 'e' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 2] == '{' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 3] == '{')
  223. {
  224. logical++;
  225. }
  226.  
  227. }
  228. }
  229. FILE *newfp = fopen(newfpname, "w");
  230. if (newfp)
  231. {
  232. fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  233. }
  234. fclose(newfp);
  235. return 0;
  236. }
  237. int Readceyboardtoscreen()
  238. {
  239. char line[300];
  240. int string_flag = 1, comment_flag = 1;
  241. int emptyLine = 0;
  242. int logical = 0;
  243. printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
  244. scanf("%s", &line);
  245. while (fgets(line, 300, stdin))
  246. {
  247. int i = 0;
  248. int len = strlen(line);
  249. emptyLine++;
  250. for (i = 0; i < len; i++)
  251. {
  252. if ((line[i] == '"') && (line[i - 1] != '\\'))
  253. {
  254. if (string_flag == 1)
  255. string_flag--;
  256. else
  257. string_flag++;
  258. }
  259. if ((line[i] == '/') && (line[i + 1] == '/'))
  260. break;
  261. if ((line[i] == '/') && (line[i + 1] == '*'))
  262. comment_flag--;
  263. if ((line[i] == '*') && (line[i + 1] == '/'))
  264. comment_flag++;
  265.  
  266. if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
  267. {
  268. emptyLine--;
  269. break;
  270. }
  271. }
  272. if (string_flag && comment_flag)
  273. {
  274. if (line[i] == 'f' && line[i + 1] == 'o'&&line[i + 2] == 'r' || line[i] == 'w' && line[i + 1] == 'h'&&line[i + 2] == 'i'&&line[i + 3] == 'l' && line[i + 4] == 'e' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 2] == '{' || line[i] == 'd'&&line[i + 1] == 'o'&&line[i + 3] == '{')
  275. {
  276. logical++;
  277. }
  278.  
  279. }
  280. }
  281.  
  282.  
  283. printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
  284. if(line[strlen(line) - 1] == EOF)
  285. return 0;
  286. }
Add Comment
Please, Sign In to add comment