Задати при описі 2 масиви розмірністю 4, елементами якого є дійсні і цілі числа. Використовуючи функції блочного вводу-виводу сформувати двійковий файл із елементів заданих масивів і прочитати 5 значень з сформованого файлу в змінні, які вивести на екран. Передбачити повідомлення про помилки при відкритті і закритті файлу, а також при блочному вводі-виводі.
Текст програми:
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i, array1[9]={1,4,5,6}, a1,a2,a3,a4;
float array2[9]={6.7,8.9,4.5,3},a5;
FILE *fp;
/* Відкриття файлу для запису в двійковому режимі */
fp=fopen("C:\\lk\\list.txt", "wb");
/* Збереження (запис) масивів у файл*/
if ( (fwrite(array1, sizeof(int), 4, fp) != 4)
{printf("Помилка запису"); exit(1);}
if ( (fwrite(array2, sizeof(float), 4, fp) != 4)
{printf("Помилка запису");exit(2);}
fclose(fp);
/* Відкриття того ж файлу для читання в двійковому режимі */
fp=fopen("("C:\\lk\\list.txt", "rb"");
/* Зчитування даних в змінні a1,a2,a3,a4,a5*/
if ( (fwrite(&a1, sizeof(int), 1, fp) != 1)
{printf("Помилка запису"); exit(3);}
if ( (fwrite(&a2, sizeof(int), 1, fp) != 1)
{printf("Помилка запису"); exit(4);}
if ( (fwrite(&a3, sizeof(int), 1, fp) != 1)
{printf("Помилка запису"); exit(5);}
if ( (fwrite(&a4, sizeof(int), 1, fp) != 1)
{printf("Помилка запису"); exit(6);}
if ( (fwrite(&a5, sizeof(float), 1, fp) != 1)
{printf("Помилка запису"); exit(7);}
fclose(fp);
/* Вивід прочитаних змінних на екран*/
printf("a1= %d\t a2= %d\t a3= %d\t a4= %d\t a5= %f\n ", a1,a2,a3,a4,a5); }
Контрольні запитання
1. Яка функція блочного вводу?
2. Яка функція блочного виводу?
3. Який прототип функції fwrite().?
4. Який прототип функції fread()?