Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <Windows.h>
- int fun4();
- int fun5();
- int fun6();
- int fun7();
- int main()
- {
- int choice;
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- printf("Меню:\n");
- printf("1:четене програмата от файл и запис на резултата във файл(потребителят трябва да въведе имената на двата файла, като файла с програмата трябва да завършва с '.С')\n\n");
- printf("2:четене програмата от файл и извеждане на резултата на екрана(файлът въведен от потребителят трябва да завършва на '.С')\n\n");
- printf("3:четене на програмата от клавиатура и извеждане във файл зададен от потребителя\n\n");
- printf("4:четене на програмата от клавиатурата и извеждане на екрана\n\n");
- printf("Напишете вашия избор:");
- fflush(stdout);
- scanf("%d", &choice);
- switch (choice)
- {
- case 1:
- fun4();
- printf("Резултатите са във файла");
- break;
- case 2:
- fun5();
- break;
- case 3:
- fun6();
- printf("Резултатите са във файла");
- break;
- case 4:
- fun7();
- break;
- default:
- printf("ГРЕШКА!");
- }
- system("pause");
- return 0;
- }
- int fun4()
- {
- char line[300];
- int string_flag = 0;
- int emptyLine = 0;
- int logical = 0;
- char fpname[255], newfpname[255];
- printf("Въведи името на файла за четене :\n");
- scanf("%s", fpname);
- printf("Въведи името на файла за запис на резултата:\n");
- scanf("%s", newfpname);
- FILE *fp = fopen(fpname, "r");
- if (fp == NULL)
- {
- printf("ГРЕШКА: Файлът не може да се отвори!\n");
- return -1;
- }
- else
- if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
- {
- printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
- return -1;
- }
- {
- while (fgets(line, 300, fp))
- {
- int string_flag = 0, comment_flag = 0;
- int i = 0;
- int len = strlen(line);
- emptyLine++;
- for (i = 0; i < len; i++)
- {
- if (line[i] == '"')
- !string_flag;
- if (line[i] == '//' || line[i] == '/*')
- {
- comment_flag = 1;
- string_flag = 0;
- }
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
- {
- logical++;
- }
- }
- }
- fclose(fp);
- if (newfpname[strlen(newfpname) - 2] != '.'&& newfpname[strlen(newfpname) - 1] != 'c')
- {
- printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
- return -1;
- }
- FILE *newfp = fopen(newfpname, "w");
- if (newfp)
- {
- fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- }
- fclose(newfp);
- return 0;
- }
- int fun5()
- {
- char line[300];
- int emptyLine = 0;
- int logical = 0;
- char fpname[255], newfpname[255];
- printf("Въведи името на файла за четене :\n");
- scanf("%s", fpname);
- FILE *fp = fopen(fpname, "r");
- if (fp == NULL) {
- printf("ГРЕШКА: Файлът не може да се отвори!\n");
- return -1;
- }
- else
- if (fpname[strlen(fpname) - 2] != '.'&& fpname[strlen(fpname) - 1] != 'c')
- {
- printf("ГРЕШКА: Файлът не е с правилното разширение!\n");
- return -1;
- } else
- {
- while (fgets(line, 300, fp)) {
- int i = 0;
- int len = strlen(line);
- emptyLine++;
- for (i = 0; i < len; i++) {
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ') {
- emptyLine--;
- break;
- }
- }
- if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
- {
- logical++;
- }
- }
- }
- printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- return 0;
- }
- int fun6()
- {
- char line[300];
- int emptyLine = 0;
- int logical = 0;
- char newfpname[255];
- printf("Въведи името на файла за запис на резултата:\n");
- fflush(stdout);
- scanf("%s", newfpname); printf(".txt");
- printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
- fflush(stdout);
- scanf("%s", &line);
- while (fgets(line, 300, stdin)) {
- int i = 0;
- int len = strlen(line);
- emptyLine++;
- for (i = 0; i < len; i++) {
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ') {
- emptyLine--;
- break;
- }
- }
- if (strstr(line, "while") || strstr(line, "do") || strstr(line, "for"))
- {
- logical++;
- }
- }
- FILE *newfp = fopen(newfpname, "w");
- if (newfp)
- {
- fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- }
- fclose(newfp);
- return 0;
- }
- int fun7()
- {
- char line[300];
- int emptyLine = 0;
- int logical = 0;
- printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
- fflush(stdout);
- scanf("%s", &line);
- while (fgets(line, 300, stdin))
- {
- int i = 0;
- int len = strlen(line);
- emptyLine++;
- for (i = 0; i < len; i++)
- {
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (strstr(line, "while") || strstr(line, "do")&& strstr(line, "while") || strstr(line, "for"))
- {
- logical++;
- }
- }
- printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- if(line[strlen(line) - 1] == EOF)
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment