Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include <iostream>
  5.  
  6. /*1. С клавиатуры заполнить файл символами.Вывести содержимое файла на экран.
  7. 2. Найти наиболее длинную последовательность повторяющихся символов.
  8. 3. Заменить все слова заданной длины пробелами.*/
  9.  
  10. void vvod_elementov(FILE* f)
  11. {
  12.     fopen_s(&f, "readme.txt", "w");
  13.     if (f == NULL)
  14.     {
  15.         printf("Error");
  16.         exit(1);
  17.     }
  18.     printf("Vvedite stroky: \n");
  19.     char* m = (char*)malloc(sizeof(char) * 255);
  20.     while (gets_s(m, 255) && m[0] != '\0')
  21.     {
  22.         rewind(stdin);
  23.         fprintf(f, m);
  24.         fprintf(f, " ");
  25.     }
  26.     free(m);
  27.     fclose(f);
  28. }
  29.  
  30. void vivod_elementov(FILE* f)
  31. {
  32.     fopen_s(&f, "readme.txt", "rt");
  33.     if (f == NULL)
  34.     {
  35.         printf("Error");
  36.     }
  37.     printf("Vasha stroka:\n");
  38.     char* m = (char*)malloc(sizeof(char) * 255);
  39.     while (!feof(f))
  40.     {
  41.         rewind(stdin);
  42.         fgets(m, 255, f);
  43.         printf("%s", m);
  44.         printf("\n");
  45.     }
  46.     free(m);
  47.     fclose(f);
  48. }
  49.  
  50. void dlin(FILE* f)
  51. {
  52.     int k = 0, max = 0, n = 256;
  53.     fopen_s(&f, "readme.txt", "r+");
  54.     if (f == NULL)
  55.     {
  56.         printf("Error");
  57.         exit(1);
  58.     }
  59.     int position = 0, max_k = 0, numb = -1;
  60.     fpos_t p1;
  61.     char buf_1, buf_2;
  62.     for (; buf_1 = getc(f);)
  63.     {
  64.         p1 = ftell(f);
  65.         if (buf_1 == EOF)
  66.         {
  67.             break;
  68.         }
  69.         for (; buf_2 = getc(f);)
  70.         {
  71.             if (buf_1 == EOF)
  72.             {
  73.                 break;
  74.             }
  75.             if (buf_2 == buf_1)
  76.             {
  77.                 k++;
  78.             }
  79.             else {
  80.                 if (k > max_k)
  81.                 {
  82.                     max_k = k + 1;
  83.                     fseek(f, -max_k, SEEK_CUR);
  84.                     position = ftell(f);
  85.                     fseek(f, max_k, SEEK_CUR);
  86.                 }
  87.                 k = 0;
  88.                 break;
  89.             }
  90.         }
  91.     }
  92.     printf("%d  ", max_k);
  93.     fseek(f, (position-1) * sizeof(char), SEEK_SET);
  94.     for (int i = 0; i < max_k; ++i)
  95.     {
  96.         buf_1 = getc(f);
  97.         printf("%c", buf_1);
  98.     }
  99.     printf(": end");
  100.     fclose(f);
  101. }
  102.  
  103. void zam(FILE* f)
  104. {
  105.     fpos_t length1 = 0, l4=0;
  106.     int length2;
  107.     fopen_s(&f, "readme.txt", "r+");
  108.     if (f == NULL)
  109.     {
  110.         printf("Error");
  111.         exit(1);
  112.     }
  113.     fseek(f, 0, SEEK_END);
  114.     printf("Vvedite razmer slova");
  115.     scanf_s("%d", &length2);
  116.     char buffer;
  117.     rewind(f);
  118.     while (!feof(f))
  119.     {
  120.         buffer = fgetc(f);
  121.         l4++;
  122.         if (buffer != ' ')
  123.         {
  124.  
  125.             length1++;
  126.             continue;
  127.         }
  128.         else
  129.         {
  130.             if (length1 == length2)
  131.             {
  132.                 fseek(f, ((-length1) -1) * sizeof(char), SEEK_CUR);
  133.                 for (int j = length1; j > 0; --j)
  134.                 {
  135.                     fprintf(f, " ");
  136.                 }
  137.                 fseek(f, l4, SEEK_SET);
  138.             }
  139.             length1 = 0;
  140.         }
  141.     }
  142.     fclose(f);
  143. }
  144.  
  145. int main()
  146. {
  147.     FILE* f = NULL;
  148.     vvod_elementov(f);
  149.     vivod_elementov(f);
  150.     zam(f);
  151.     vivod_elementov(f);
  152.     dlin(f);
  153.     return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement