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

5 Методичні вказівки

1 Описати і задати масив згідно умови задачі індивідуального завдання, описати змінні, тип яких співпадає з типом елементів заданого масиву.

2 Відкрити в двійковому режимі файл для запису елементів масиву і передбачити повідомлення про його успішне чи не успішне відкриття..

3 За допомогою функції fwrite() заданий масив записати у відкритий файл. Передбачити перевірку на правильність запису масиву в файл.

4 Закрити файл за допомогою функції fclose().

5 Відкрити в двійковому режимі файл для читання, передбачивши повідомлення про його успішне чи не успішне відкриття.

6 Використовуючи функції прямого доступу (fseek(), rewind(() і ftell()) встановити положення маркера у файлі на відповідні елементи і поля масиву, задані в умові задачі індивідуального завдання.

7 Прочитати ці елементи масиву в описані змінні використовуючи функцію fread( ), значення яких вивести на екран.

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

Задати масив розмірністю 3, елементами якого є структура "Студент": прізвище, дата народження; домашня адреса; рейтинг. Елементи масиву задати при описі, шляхом присвоєння її значень або шляхом введення їх з клавіатури. Сформувати двійковий файл із елементів масиву структур і прочитати з нього в змінні 3-е і 1-е поля 2-го елементу масиву, використовуючи функції блочного вводу-виводу. Передбачити повідомлення про помилки при відкритті і закритті файлу, а також при блочному вводі-виводі.Значення полів вивести на екран.

Текст програми на мові С

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

FILE *fp;

struct stydent

{ char pr[30];

char data[20];

char ad[30];

int r;} st[5]={{"Rybaha ","12.07.1991","Pumonenka 5/8",34},

{"Skip ","3.11.1992","Melnyka 45", 25},

{"Sunjakevuch ","8.08.1992","Rjashivska 34/6",47}};

char A[30],B[30]; int k,m;

void main() { clrscr();

fp=fopen("C:\\B.TXT","wb");

if(fp==NULL) { printf("not open wb"); exit(1); }

k=fwrite(st,sizeof(struct stydent),3 ,fp);

if(k!=3) { printf("not write"); exit(2); }

k=fclose(fp);

if(k==-1) { printf("not close"); exit(3); }

fp=fopen("C:\\B.TXT","rb");

if(fp==NULL) { printf("not open"); exit(4); }

m= sizeof(struct stydent)+50*sizeof(char);

fseek(fp,m,0);

k=fread(A,sizeof(char),30,fp); /* Читання 3-го поля */

if(k!=30) { printf("not read"); exit(5); }

m= sizeof(struct stydent)

fseek(fp,m,0);

k=fread(B,sizeof(char),30,fp); /* Читання 1-го поля */

if(k!=30) { printf("not read"); exit(6); }

k=fclose(fp);

if(k==-1) { printf("not close"); exit(7); }

puts(A);

puts(B);

}

Результат:

Melnyka 45 - 3-е поле

Skip - 1-е поле

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

1 Який прототип функції fseek()?

2 Що повертає функція fseek() при успішному завершенні і при помилці?

3 Який прототип функції ftell().і що вона повертає.?

4 Що є аргументом функції rewind()?

5 Що повертає функція fopen() при відкритті файлу?

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

Тема: Складання програм з використанням основних операторів мови С

Мета: Навчитись розробляти алгоритми розв'язку задач, що потребують розгалужених та циклічних обчислень та записувати програми їх реалізації.

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