SHARE
TWEET

Untitled

a guest Apr 21st, 2019 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <locale.h>
  4.  
  5. int main(int argc, char **argv)
  6. {
  7.     setlocale(LC_ALL, "Ru");
  8.     FILE *file_ptr; // указатель на файл (задание 1.1)
  9.     int N; // количество строк и символов в строках (задание 1.1)
  10.     int count = 0; // для подсчета количества строк (задание 1.2)
  11.     char ch; // для подсчета количества строк (задание 1.2)
  12.     char text[50] = "0"; // строка для чтения из файла
  13.     FILE *file_ptr1; // указатель на f2 (задание 1.4)
  14.     int a; // для задания 1.3
  15.     char tmp; // для задания 1.3
  16.     FILE *file_ptr2; // вспомогательный файл для задания 1.3
  17.  
  18.     file_ptr = fopen("D:\\f1.txt", "w");
  19.  
  20.     if (file_ptr != NULL) {
  21.         printf("Введите количество строк в файле и символов в них (не более 10): \n");
  22.         scanf("%d", &N);
  23.  
  24.         if (N > 10) {
  25.             do {
  26.                 printf("Нужно ввести число не более 10! Повторите ввод: \n");
  27.                 scanf("%d", &N);
  28.             } while (N > 10);
  29.         }
  30.  
  31.         printf("Введите строки не более %d символов.\n", N);
  32.  
  33.         for (int i = 0; i < N; i++)
  34.         {
  35.             printf("Введите %d-ю строку: \n", (i + 1));
  36.             scanf("%s", text);
  37.             if (strlen(text) > N) {
  38.                 do {
  39.                     printf("Нельзя вводить больше %d символов! Введите строку еще раз: \n", N);
  40.                     scanf("%s", text);
  41.                 } while (strlen(text) > N);
  42.                 fputs(text, file_ptr);
  43.             }
  44.             else
  45.             {
  46.                 fputs(text, file_ptr);
  47.             }
  48.             fputs("\n", file_ptr);
  49.         }
  50.         fclose(file_ptr);
  51.  
  52.  
  53.         // вывод числа строк в файле (задание 1.2)
  54.         file_ptr = fopen("D:\\f1.txt", "r");
  55.         while ((ch = fgetc(file_ptr)) != EOF) {
  56.             if (ch == '\n')
  57.                 ++count;
  58.         }
  59.         printf("Количество строк в файле: %d\n", count);
  60.         fclose(file_ptr);
  61.  
  62.  
  63.         // реверс строк в файле (задание 1.3)
  64.         file_ptr = fopen("D:\\f1.txt", "r");
  65.         file_ptr2 = fopen("D:\\f3.txt", "w");
  66.         while (fgets(text, 50, file_ptr)) {
  67.             count = strlen(text)-1;
  68.             for (a = 0; a < count / 2; a++) {
  69.                 tmp = text[a];
  70.                 text[a] = text[count - 1 - a];
  71.                 text[count - 1 - a] = tmp;
  72.             }
  73.             fputs(text, file_ptr2);
  74.         }
  75.         fclose(file_ptr);
  76.         fclose(file_ptr2);
  77.  
  78.         // копирование из вспомогательного файла в исходный
  79.         file_ptr = fopen("D:\\f1.txt", "w");
  80.         file_ptr2 = fopen("D:\\f3.txt", "r");
  81.         if (file_ptr2 != NULL) {
  82.             while (fgets(text, 50, file_ptr2)) {
  83.                 fputs(text, file_ptr);
  84.             }
  85.         }
  86.         else {
  87.             printf("Невозможно открыть файл f3\n");
  88.             return 1;
  89.         }
  90.  
  91.  
  92.         // вывод в f2 (задание 1.4)
  93.         file_ptr1 = fopen("D:\\f2.txt", "w");
  94.         /*fseek(file_ptr, 0, SEEK_SET);
  95.         if (file_ptr1 != NULL) {
  96.             while (fgets(text, 50, file_ptr)) {
  97.                 fseek(file_ptr1, -(count1*N), SEEK_SET);
  98.                 count1++;
  99.                 fputs(text, file_ptr1);
  100.             }
  101.         }
  102.         else {
  103.             printf("Невозможно открыть файл f2\n");
  104.             return 1;
  105.         }*/
  106.  
  107.  
  108.         // вывод содержимого f2 на экран (задание 1.5)
  109.         /*fseek(file_ptr1, 0, SEEK_SET);
  110.         while (fgets(text, 50, file_ptr1)) {
  111.             printf("%s", text);
  112.         }*/
  113.  
  114.         fclose(file_ptr);
  115.         fclose(file_ptr1);
  116.         fclose(file_ptr2);
  117.         _getch();
  118.         return 0;
  119.  
  120.     }
  121.     else {
  122.         printf("Невозможно открыть файл f1\n");
  123.         return 1;
  124.     }
  125.  
  126. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top