ceva_megamind

FILE TASK HSE

Jun 26th, 2021 (edited)
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. void create(char *name) {
  5.    FILE *f;
  6.    int n, a;
  7.    if ((f = fopen(name, "wb")) == NULL) {
  8.        printf("Ошибка при записи чисел в файл");
  9.        return;
  10.    }
  11.    else {
  12.        printf("Введите число чисел, которые хотите записать в файл:\n");
  13.        scanf("%d", &n);
  14.        printf("\nВведите числа:\n");
  15.        for (int i = 0; i < n; i++) {
  16.            scanf("%d", &a);
  17.            fwrite(&a, sizeof(a), 1, f);
  18.        }
  19.        return;
  20.    }
  21. }
  22.  
  23. void output(char *name) {
  24.    FILE *f;
  25.    int a;
  26.    if ((f = fopen(name, "rb")) == NULL)
  27.        printf("Ошибка при чтении файла");
  28.    else {
  29.        printf("\nЧисла в файле:\n");
  30.        while (fread(&a, sizeof(int), 1, f) == 1)
  31.                printf("%d ", a);
  32.        fclose(f);
  33.    }
  34. }
  35.  
  36. int main() {
  37.   int x;
  38.   FILE *out = fopen("output.bin", "wb");
  39.   create("input.bin");
  40.   output("input.bin");
  41.   FILE *in = fopen("input.bin", "rb");
  42.   for (int i = INT_MAX; i >= INT_MIN; i--)
  43.       while (fread(&x, sizeof(int), 1, in) == 1)
  44.           if (x == i)
  45.               fwrite(&x, sizeof(int), 1, out);
  46.   fclose(out);
  47.   output("output.bin");
  48.   return 0;
  49. }
Add Comment
Please, Sign In to add comment