русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Короткі теоретичні відомості


Дата додавання: 2014-11-28; переглядів: 817.


Блочний вивід. Функція fwrite().Блочний ввід-вивід використовується при збереженні даних, які буде зчитувати та чи інша програма на С. Цей спосіб використовується тільки для двійкових файлів. В процесі блочного вводу-виводу дані копіюються повністю з пам’яті на диск і навпаки з диску в пам’ять. Наприклад, при одному виклику функції блочного вводу-виводу можна записати цілий масив і навпаки, одним викликом функції зчитати цей масив з диску в пам’ять. Блочний ввід-вивід виконується функціями fread() i fwrite().

Функція fwrite().Ця бібліотечна функція записує блок данихз пам’яті в двійковий файл. Прототип функції, який знаходиться в файлі stdio.h

int fwrite(void *buf, int size, int count, FILE *fp) ;

Аргумент buf -це вказівник на ділянку пам’яті, в якій є дані для запису в файл. Опис voidозначає, що аргумент є вказівником на любий тип даних.

Аргументsize -вказує розмір в байтах окремих елементів даних в блоці.

Аргумент count - вказує загальну кількість елементів даних. Наприклад, якщо треба записати масив з 100 цілочисельних елементів, то size=2,а count=100, бо цілочисельна змінна має 2 байти, кількість елементів рівна 100. Для обчислення аргументу sizeможна використати операцію sizeof().

Аргументfp -є вказівником на структуру FILE,який повертається з функції fopen() при відкритті файлу. Функція повертає кількість елементів даних, записаних в файл. Якщо ця кількість менша аргументу count, то запис був помилковим. Перевіряють правильність виводу фрагментом програми

if ( (fwrite(buf, size, count, fp) != count)

printf("Помилка");

Приклад: Записати одну змінну x типу double

fwrite(&x, sizeof(double), 1, fp);

Приклад: Записати масив data[50] типу float

float data[50];

fwrite(data, sizeof(float), 50, fp);/*Записує масив 50 елементів довжиною 4 байти*/

або fwrite(data, sizeof(data), 1, fp); /*Записує масив як 1 елемент*/

Блочний вивід. Функція fread(). Функція fread().Ця бібліотечна функція зчитує блок данихз двійкового файлу в пам¢ять.

Прототип функції, який знаходиться в файлі stdio.h

int fread(void *buf, int size, int count, FILE *fp) ;

Аргумент buf -це вказівник на ділянку пам’яті, в яку поміщаються дані з файлу. Опис voidозначає, що аргумент є вказівником на будь-який тип.

Аргументsize -вказує розмір в байтах окремих елементів даних в блоці.

Аргумент count - вказує загальну кількість елементів даних. Наприклад, якщо треба зчитати масив з 100 цілочисельних елементів, то size=2,а count=100, бо цілочисельна змінна має 2 байти, квлькість елементів рівна 100. Для обчислення аргументу sizeможна використати операцію sizeof().

Аргументfp -є вказівником на структуру FILE,який повертається з функції fopen(). Функція повертає кількість елементів даних, зчитаних з файлу. Якщо ця кількість менша аргумента count, то зчитування було помилковим. Перевіряють правильність виводу фрагментом програми

if ( (fread(buf, size, count, fp) != count) printf("Помилка");


<== попередня лекція | наступна лекція ==>
Приклад виконання лабораторної роботи | Варіанти індивідуальних завдань


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн