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 Readfiletofile();
- int Readfiletoscreen();
- int Readceyboardtofile();
- int Readceyboardtoscreen();
- int main()
- {
- int choice;
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- printf(" Меню:\n");
- printf("1:четене програмата от файл и запис на резултата във файл\n(потребителят трябва да въведе имената на двата файла, като файла с програмата трябва да завършва с '.С')\n\n");
- printf("2:четене програмата от файл и извеждане на резултата на екрана\n(файлът въведен от потребителят трябва да завършва на '.С')\n\n");
- printf("3:четене на програмата от клавиатура и извеждане във файл зададен от потребителя\n\n");
- printf("4:четене на програмата от клавиатурата и извеждане на екрана\n\n");
- printf("Напишете вашия избор:");
- scanf("%d", &choice); //фактически параметър
- switch (choice)
- {
- case 1:
- system("cls");
- Readfiletofile();
- printf("Резултатите са във файла");
- break;
- case 2:
- system("cls");
- Readfiletoscreen();
- break;
- case 3:
- system("cls");
- Readceyboardtofile();
- printf("Резултатите са във файла");
- break;
- case 4:
- system("cls");
- Readceyboardtoscreen();
- break;
- default:
- printf("ГРЕШКА!");
- }
- system("pause");
- return 0;
- }
- int Readfiletofile()
- {
- char line[300];
- int string_flag = 1, comment_flag = 1;
- 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 i = 0;
- int len = strlen(line);
- emptyLine++;
- for (i = 0; i < len; i++)
- {
- if ((line[i] == '"') && (line[i - 1] != '\\'))
- {
- if (string_flag == 1)
- string_flag--;
- else
- string_flag++;
- }
- if ((line[i] == '/') && (line[i + 1] == '/'))
- break;
- if ((line[i] == '/') && (line[i + 1] == '*'))
- comment_flag--;
- if ((line[i] == '*') && (line[i + 1] == '/'))
- comment_flag++;
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (string_flag && comment_flag)
- {
- 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] == '{')
- {
- 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 Readfiletoscreen()
- {
- char line[300];
- int string_flag = 1, comment_flag = 1;
- 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] == '"') && (line[i - 1] != '\\'))
- {
- if (string_flag == 1)
- string_flag--;
- else
- string_flag++;
- }
- if ((line[i] == '/') && (line[i + 1] == '/'))
- break;
- if ((line[i] == '/') && (line[i + 1] == '*'))
- comment_flag--;
- if ((line[i] == '*') && (line[i + 1] == '/'))
- comment_flag++;
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (string_flag && comment_flag)
- {
- 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] == '{')
- {
- logical++;
- }
- }
- }
- printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- return 0;
- }
- int Readceyboardtofile()
- {
- char line[300];
- int string_flag = 1, comment_flag = 1;
- int emptyLine = 0;
- int logical = 0;
- char newfpname[255];
- printf("Въведи името на файла за запис на резултата:\n");
- scanf("%s", newfpname);
- printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
- 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] == '"') && (line[i - 1] != '\\'))
- {
- if (string_flag == 1)
- string_flag--;
- else
- string_flag++;
- }
- if ((line[i] == '/') && (line[i + 1] == '/'))
- break;
- if ((line[i] == '/') && (line[i + 1] == '*'))
- comment_flag--;
- if ((line[i] == '*') && (line[i + 1] == '/'))
- comment_flag++;
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (string_flag && comment_flag)
- {
- 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] == '{')
- {
- logical++;
- }
- }
- }
- FILE *newfp = fopen(newfpname, "w");
- if (newfp)
- {
- fprintf(newfp, "Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- }
- fclose(newfp);
- return 0;
- }
- int Readceyboardtoscreen()
- {
- char line[300];
- int string_flag = 1, comment_flag = 1;
- int emptyLine = 0;
- int logical = 0;
- printf("Напиши програмата:(за край на програмата натиснете CTR+Z)\n");
- 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] == '"') && (line[i - 1] != '\\'))
- {
- if (string_flag == 1)
- string_flag--;
- else
- string_flag++;
- }
- if ((line[i] == '/') && (line[i + 1] == '/'))
- break;
- if ((line[i] == '/') && (line[i + 1] == '*'))
- comment_flag--;
- if ((line[i] == '*') && (line[i + 1] == '/'))
- comment_flag++;
- if (line[i] != '\n' && line[i] != '\t' && line[i] != ' ')
- {
- emptyLine--;
- break;
- }
- }
- if (string_flag && comment_flag)
- {
- 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] == '{')
- {
- logical++;
- }
- }
- }
- printf("Празните редове са : %d, \n Операторите за цикъл са: %d", emptyLine, logical);
- if(line[strlen(line) - 1] == EOF)
- return 0;
- }
Add Comment
Please, Sign In to add comment