Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabCi-IPPT_final.doc
Скачиваний:
4
Добавлен:
27.04.2019
Размер:
1.12 Mб
Скачать

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

В мові С всі операції вводу-виводу, в тому числі з файлів та у файли, виконуються за допомогою потоків. Функції для роботи з потоками вводу-виводу містяться у файлі заголовків stdio.h. Для початку роботи з файлом необхідно створити відповідний потік і явно асоціювати його з конкретним файлом на диску.

FILE *infile, *outfile;

Процес у результаті якого створюється потік ввводу чи виводу, який асоційований з файлом називається відкриванням файлу. Для цього використовується бібліотечна функція fopen(), наприклад:

f1 = fopen(“шлях до файла”,”режим доступу”);

де f1 – вказівник на потік типу FILE, режим доступу вказує на режим відкривання файлу: b – файл двійковий; t – текстовий; w – файл відкривається для запису, якщо файлу не існує, то він створюється, якщо існує – то його вміст очищається; r - файл відкривається тільки для читання; a - файл відкривається для додавання даних у кінець файлу. Наприклад, f1=fopen(“d:/student/data.txt”,”tw”);

Запис або читання даних з файлу здійснюють трьома способами: за допомогою форматованого вводу-виводу, символьного вводу-виводу та блочного вводу-виводу. Для кожного із способів є свій набір функцій.

Форматований ввід вивід – використовується для роботи з даними, які організовані специфічним чином. Форматований вивід здійснюється функцією fprintf(), а ввід - fscanf(). Формати цих функцій наступні:

fprintf(потік, „рядок формату”, об’єкт1...об’єктN);

fscanf(потік, „рядок формату”, &об’єкт1...&об’єктN);

Наприклад, fprintf(f1, „x=%d y=%f\n”, x1[i], yw[i]); - запис у файл елементів масивів x1 та yw, fscanf(f2, „%s%f”, &name,&price); - читання з файлу.

Крім цих функцій вводу-виводу в мові С є функції запису і читання символів, блоків даних тощо. Функції для роботи з файлами приведено в додатку Д.

Приклад виконання лабораторної роботи

Постановка задачі. Написати програму, яка знаходить суму квадратів від’ємних елементів масиву. Вхідний масив програма повинна прочитати з файлу. Результат опрацювання масиву потрібно вивести у інший файл.

Граф-схема алгоритму програми

Блок 1 – початок алгоритму

Блок 2 – ввід елементів масиву із файла на диску

Блоки 3-8 – сортування елементів списку

Блок 9 – вивід елементів відсортованого масиву у файл і на екран

Блок 10 – закінчення алгоритму

К од програми мовою С

#include <stdio.h>

#include <stdlib.h>

#define n 9

int main(int argc, char *argv[])

{

FILE *infile,*outfile;

int i,mas[n],a,symkv,elem;

p

uts("Klymenko Oleksandr , grupa KIm-31");

puts("Laboratorna robota 11\n\n\n\n");

puts("Press any key to continue");

if((infile=fopen("d:/wer.txt","r"))==NULL)

puts("Fail ne vdalosya vidkrutu!");

outfile=fopen("d:/werr.txt","w");

for(i=0;i<n;i++)

{fscanf(infile,"%d",&a);

mas[i]=a;

printf("%d-element masuvy %d\n",i,mas[i]);

}

symkv=0;

for(i=0;i<n;i++)

if(mas[i]<0)

symkv=symkv+mas[i]* mas[i];

printf("\n Syama kvadrativ vidjemnux elementiv = %d",symkv);

fprintf(outfile,"\n Syama kvadrativ vidjemnux elementiv = %d",symkv);

fclose(infile);

fclose(outfile);

puts("\n\n\n");

puts("Programa zavershyla robotu");

system("PAUSE");

return 0;

}

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