Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_ZI.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
1.85 Mб
Скачать

5 Приклад розв’язку завдання

Знайти довжину трьох заданих символьних рядків за допомогою функції strlen(). Результати вивести на екран. Приєднати другий рядок в кінець першого, а третій - в кінець другого, результатуючі рядки вивести на екран.

Текст програми

# include <string.h>

# include <stdio.h>

#include<conio.h>

char a1[]=”qwerett”;

char a2[20]=”qyuwerp[ett”;

char a3[255]=”qwerett”;

int l1,l2,l3;

void main()

{

clrscr();

/* Знаходження довжин рядків */

l1=strlen(a1);

l2=strlen(a2);

l3=strlen(a3);

/* Вивід довжин рядків */

printf(“l1=%d\t l2=%d\t l3=%d\n”);

strcat(a1,a2);

strcat(a2,a3);

puts(a1);

puts(a2);

}

6 Питання вихідного контролю

1 За допомогою якої функції вводяться рядки з клавіатури?

2 Який синтаксис функції puts()?

3 За допомогою якої функції виводяться рядки на екран?

4 За допомогою якої функції вводяться символи з клавіатури?

5 За допомогою якої функції виводяться символи на екран?

6 Що повертає функція gets()?

7 Що таке довжина рядка і як її можна визначити?

8 Що необхідно зробити перед копіюванням рядка?

Практична робота № 4

Тема: Блочний файловий ввід-вивід структурованих даних

Мета: Навчитися записувати дані у двійкові файли та читати їх за допомогою функцій блочного вводу-виводу.

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

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

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

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

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

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

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

Аргумент fp - є вказівником на структуру FILE, який повертає з функція fopen() при відкритті файлу. Функція fwrite() повертає кількість елементів даних, записаних в файл. Якщо ця кількість менша аргументу 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 елементів */

або

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

1.3 Блочний вивід. Функція 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("Помилка");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]