Лабораторная работа №21 "Запись в файл и чтение из файла однотипных данных"

Задачи


Вариант А1

Написать две программы: Первая вводит с клавиатуры целые числа до тех пор, пока не введено число 0 и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и их сумму. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.

Первая программа
// Вариант А1 (Первая программа)
#include <stdlib.h>
#include <string.h>
#define f_path "/home/user/Admin/Temp/numbers.dat"

int main() {
  int i, c;
  FILE* fil;

  fil = fopen(f_path, "w");
  if (fil == NULL) {
    printf("Error open file to write\n");
    return -1;
  }
  printf("File open to write\n");

  while (1) {
    scanf("%i", &c);
    if (c == 0) {
      break;
    } else {
      putw(c, fil);
    }
  }

  printf("\nWrite OK\n");
  i = fclose(fil);
  if (i != 0) {
    printf("Error close file\n");
    return -1;
  }
  printf("File closed\n");
  return 0;
}
Вторая программа
// Вариант А1 (Вторая программа)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define f_path "/home/user/Admin/Temp/numbers.dat"

int main() {
  int c, i, a = 0;
  FILE* fil;

  fil = fopen(f_path, "r");
  if (fil == NULL) {
    printf("Error open file to read\n");
    return -1;
  }
  printf("File open to read\n");

  while ((c = getw(fil)) != EOF) {
    printf("%i\n", c);
    a = c + a;
  }
  printf("%i", a);
  i = fclose(fil);
  if (i != 0) {
    printf("\nError close file\n");
    return -1;
  }
  printf("\nFile closed\n");
  return 0;
}

Вариант А2

Написать две программы: Первая вводит с клавиатуры N целых чисел и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и минимальное из этих чисел. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.

Первая программа
// Вариант А2 (Первая программа)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define f_path "../temp.txt"

int main() {
  int a, c, n, i;
  scanf("%i", &n);
  FILE* fil;
  fil = fopen(f_path, "w");
  if (fil == NULL) {
    printf("Error open file to write\n");
    return -1;
  }
  printf("File open to write\n");

  for (c = 0; c < n; c++) {
    scanf("%i", &a);
    putw(a, fil);
  }
  printf("\nWrite OK\n");

  i = fclose(fil);
  if (i != 0) {
    printf("Error close file\n");
    return -1;
  }
  printf("File closed\n");
}
Вторая программа
// Вариант А2 (Вторая программа)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define f_path "../temp.txt"

int main() {
  int c, i=0, min;
  FILE* fil;
  char cc[10] = "cat ";

  fil = fopen(f_path, "r");
  if (fil == NULL) {
    printf("Error open file to read\n");
    return -1;
  } printf("File open to read\n");

  while ((c = getw(fil)) != EOF) {
    printf("%i ", c);
    if (i == 0) {
      min = c;
      i++;
    }
    if (c < min) {
      min = c;
    }
  } printf("\nFile read OK");

  i = fclose(fil);
  if (i != 0) {
    printf("\nError close file\n");
    return -1;
  } printf("\nFile closed\n");
  strcat(cc, f_path);
  system(cc);
  printf("\nSystem read OK\n");
  printf("%i", min);
}

Вариант А3

Написать две программы: Первая вводит с клавиатуры целые числа до тех пор, пока не введено число 0 и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и их среднее арифметическое. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.

Первая программа
// Вариант А3 (Первая программа)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define f_path "../temp.txt"

int main() {
  int c, i;
  FILE* fil;
  fil = fopen(f_path, "w");
  if (fil == NULL) {
    printf("Error");
    return -1;
  }
  printf("File open to write\n");
  while (1) {
    scanf("%i", &c);
    if (c == 0) {
      break;
    } else {
      putw(c, fil);
    }
  }

  i = fclose(fil);
  if (i != 0) {
    printf("Error");
    return -1;
  }
  printf("File closed\n");
}
Вторая программа
// Вариант А3 (Вторая программа)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define f_path "../temp.txt"

int main() {
  int c, i, g = 0, a = 0;
  FILE* fil;

  fil = fopen(f_path, "r");
  if (fil == NULL) {
    printf("Error");
    return -1;
  }
  printf("File open to read\n");

  while ((c = getw(fil)) != EOF) {
    printf("%i\n", c);
    a += c;
    g++;
  }
  printf("Srendee: %i\n", a / g);

  i = fclose(fil);
  if (i != 0) {
    printf("Error");
    return -1;
  }
  printf("File closed\n");
}

1 лайк