SlideShare a Scribd company logo
Файлові операції у С++
Основні поняття
Файл - це сукупність даних, які розміщені на зовнішніх носіях.
Файли можуть містить як текстову, так і бінарну інформацію.
Функції опрацювання файлів описані в бібліотеці fstream
Для опрацювання файлу його необхідно відкрити, виконати потрібні
дії та закрити.
Зчитування даних із файлу
Оголошення файлової змінної та відкриття файлу для
читання:
ifstream f_in(“filename.txt”,
ознака1|ознака2|…|ознакаN);
f_in – назва файлової змінної
filename.txt – зовнішня назва файлу
Ознаки слугують для визначення режиму доступу до
файлу. Ознаки зазначати необов'язково.
Введення даних:
f_in>>a>>b; //числова змінна, рядкова змінна без
пропусків
f_in.getline(str); //рядкова змінна
Визначення кінця файлу. Закриття файлу
Для успішного читання довільних файлів потрібно знати,
коли зустрінеться кінець файлу:
while (!f_in.eof()) {//оператори}
Функція name.eof() повертає значення true, якщо
досягнуто кінця файлу.
Коли для продовження роботи файл більше не потрібен,
його слід закрити:
f_in.close();
Виведення даних у файл
Оголошення файлової змінної та відкриття файлу для запису:
ofstream f_out(“filename.txt”, ознака1|ознака2|…|ознакаN);
f_out – назва файлової змінної
filename.txt – зовнішня назва файлу
Ознаки слугують для визначення режиму доступу до файлу.
Ознаки зазначати необов'язково.
Виведення даних:
f_out<<a<<b; //числова змінна, рядкова змінна
Увага! Якщо не використовувати ознаки, на диску буде
створений новий файл із зазначеним ім'ям, або
перезаписаний файл із таким же ім'ям, якщо він уже існує
Ознаки
Ознака Призначення
ios::in Відкриває файл для читання. Вміст файлу
зберігається
ios::out Відкриває файл для записування. Якщо файл не
існує, то буде створений
ios::app Відкриває файл для дописування. Дані будуть
записані у кінець файлу
ios::trunk Якщо файл, який відкривають для записування
вже існує, то його вміст буде вилучено.
ios::nocreate Забороняє створювати файл, який відкривають
ios::inoreplace Забороняє перезаписувати існуючий файл
Ознаки (приклади)
• ofstream flags(“text1.dat”, ios::app); - можна дописати до кінця
вже існуючого файлу потрібну інформацію
• ofstream flags(“text1.dat”, ios::noreplace); - якщо файл існує і
спробувати щось записати у нього, то жодних дій не
відбудеться; якщо ж цю ознаку застосувати до нового файлу, то
файл буде створено і дані можна буде записувати
• ofstream flags(“text1.dat”, ios::nocreate); - якщо файл вже існує,
то він може бути відкритий для записування; якщо ж раніше
такого файлу на диску не було, то в кращому випадку у файл
нічого не запишеться, а в гіршому – програма зависне.
Приклади
Записати у файл три рядки тексту
#include<fstream>
using namespace std;
int main()
{ofstream fout(“output.txt”);
fout<<”Prog na C++ “<<”klas ‘309’”<<
endl;
fout<<”Kiew”<<endl;
fout<<”2015 year”<<endl;
fout.close();
return 0;}
Зчитати з нього текст
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ifstream fin(“output.txt”);
char one[64],two[64],three[64];
fin.getline(one,sizeof(one));
fin.getline(two,sizeof(two));
fin.getline(three,sizeof(three)); fin.close();
cout<<one<<endl;
cout<<two<<endl;
cout<<three<<endl;
return 0;}
Приклади (продовження)
Читати вміст файлу поки не буде
досягнутий кінець файлу:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ifstream fin(“output.txt”);
char line[64];
while (!fin.eof())
{
fin.getline(line,sizeof(line)); cout<<line<<endl;
}
fin.close();
return 0;}
Читати вміст файлу по одному слову за
один раз, поки не буде досягнутий
кінець файлу:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ifstream fin(“output.txt”);
char text[64];
while (!fin.eof())
{
fin>>text; cout<<text<<endl;
}
fin.close();
return 0;}
Обробка помилок
при виконанні файлових операцій
Щоб допомогти програмам
стежити за помилками,
використовується функція
name.fail(). Якщо у процесі
файлової операції помилок не
було, функція поверне false (0).
Однак, якщо трапилася
помилка, функція поверне true.
Наприклад:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{char line[64];
ifstream fin(“output.txt”);
if(fin.fail()) cout<<“error”;
else {
while (!fin.eof() && (!fin.fail()))
{
fin.getline(line,sizeof(line));
if (!fin.fail()) cout<<line<<endl;
}
}
fin.close();
return 0;}
Завдання
1. У текстовому редакторі створіть файл, у який занесіть
прізвища п'яти ваших друзів. Складіть програму, яка б
додавала інформацію ще про трьох осіб. Вміст файлу
виведіть на екран.
2. У текстовому редакторі створіть файл, у який занесіть
координати вершин трикутника. Обчисліть його
периметр.
Результат записати в інший файл.
Приклади
використання файлових операцій
Зчитати масив. Обчислити суму його
додатних елементів
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
int main()
{
ifstream fin(“input.txt”);
if (fin.fail())
{cout<<“error”; return 1;}
else
{
ofstream fout(“output.txt”, ios::out);
int r, s;
fin>>r>>s; // кількість рядків та стовпчиків
int i, j; // виділення пам'яті під масив
int **a=new int *[r];
for (i=0; i<r; i++)
a[i]= new int [s];
for (i=0; i<r; i++) // уведення масиву
for (j=0; j<s;j++)
fin>>a[i][j];
fin.close();
for (i=0; i<r; i++) // виведення масиву
{
for (j=0; j<s;j++)
cout<<a[i][j]<<‘ ‘;
cout<<endl;
}
int k=0; // обчислення
for (i=0; i<r; i++)
for (j=0; j<s;j++)
if (a[i][j]>0) k++;
fout<<k; // виведення результату в
файл
fout.close();
return 0;}
Приклади
використання файлових операцій
Написати програму, яка визначає,
чи зустрічається у заданому
файлі послідовність символів.
Довжина рядку тексту не
перевищує 80 символів, текст
не містить переносів,
послідовність не містить
пропусків.
#include<fstream.h>
#include<string.h>
#include<iostream.h>
#include<conio.h>
int main() {
const int len=81;
char word[len], line[len];
cout<<“slovo ?”; cin>>word;
ifstream fin(“text.txt”,
ios::nocreate);
if (fine.fail())
{cout<<“error”<<endl;
getch();
return 1;}
while (!fin.eof())
{
fin. getline(line);
if (strstr(line,word)
{ cout<<“yes”<<endl;
getch();
return 0;}
}
cout<<“no”<<endl;
getch();
return 0;}
Завдання
1. Створити текстовий файл, що складається з одного рядка та містить
слова, розділені символом пробілу. Написати програму для
підрахунку кількості слів у файлі.
2. Створити програму для записування у текстовий файл додатних цілих
чисел, що вказуються користувачем з клавіатури. Критерієм
припинення введення має бути введення від'ємного числа. Відкрити
створений файл, прочитати з нього числа та знайти їх суму.
3. Кожен рядок текстового файлу складається з однакової кількості
символів. У записі рядка використовуються лише два символи – “+” та
“*”. Написати програму для виведення на екран номера рядка та
номера стовпця кожного символу “+”. Вважати, що нумерація рядків
та стовпців починається з нуля.

More Related Content

What's hot

Робота з файлами в C++
Робота з файлами в C++Робота з файлами в C++
Робота з файлами в C++
Alexander Kuzmenko
 
урок 8
урок 8урок 8
Операційна система UNIX
Операційна система UNIXОпераційна система UNIX
Операційна система UNIX
Екатерина Осадчая
 
07 Localisation
07 Localisation07 Localisation
07 Localisationolegapster
 
файлова система
файлова системафайлова система
файлова системаtanya_cherkaj
 
Ntfs &amp; fat32
Ntfs &amp; fat32Ntfs &amp; fat32
Ntfs &amp; fat32
Andrii Hladkyi
 
2 1 ос-віндовс
2 1 ос-віндовс2 1 ос-віндовс
2 1 ос-віндовс
Алексей Свирь
 
Файлова система. Файл
Файлова система. ФайлФайлова система. Файл
Файлова система. Файл
Дмитро Фомін
 
архівація даних
архівація данихархівація даних
архівація данихIrina Biryuk
 
урок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єктиурок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єкти
School5uman
 
Файлова система
Файлова системаФайлова система
Файлова система
Yulia Vlasenko
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
 
Файлові системи NTFS і FAT
Файлові системи NTFS і FATФайлові системи NTFS і FAT
Файлові системи NTFS і FAT
jap2006
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
Anna Popravka
 

What's hot (19)

Faili i papki
Faili i papkiFaili i papki
Faili i papki
 
информатика. ос
информатика. осинформатика. ос
информатика. ос
 
Робота з файлами в C++
Робота з файлами в C++Робота з файлами в C++
Робота з файлами в C++
 
урок 8
урок 8урок 8
урок 8
 
Операційна система UNIX
Операційна система UNIXОпераційна система UNIX
Операційна система UNIX
 
07 Localisation
07 Localisation07 Localisation
07 Localisation
 
файлова система
файлова системафайлова система
файлова система
 
6 9
6 96 9
6 9
 
Ntfs &amp; fat32
Ntfs &amp; fat32Ntfs &amp; fat32
Ntfs &amp; fat32
 
2 1 ос-віндовс
2 1 ос-віндовс2 1 ос-віндовс
2 1 ос-віндовс
 
6 11
6 116 11
6 11
 
Файлова система. Файл
Файлова система. ФайлФайлова система. Файл
Файлова система. Файл
 
5 12
5 125 12
5 12
 
архівація даних
архівація данихархівація даних
архівація даних
 
урок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єктиурок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єкти
 
Файлова система
Файлова системаФайлова система
Файлова система
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 
Файлові системи NTFS і FAT
Файлові системи NTFS і FATФайлові системи NTFS і FAT
Файлові системи NTFS і FAT
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 

Similar to +4 faylovi operaciji_u_s2000

7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptx
ssuser3b34ba
 
файли та папки 6 клас
файли та папки 6 класфайли та папки 6 клас
файли та папки 6 класIllariya
 
ОПЕРАЦІЙНА СИСТЕМА UNIX
ОПЕРАЦІЙНА СИСТЕМА UNIXОПЕРАЦІЙНА СИСТЕМА UNIX
ОПЕРАЦІЙНА СИСТЕМА UNIX
Екатерина Осадчая
 
Ms dos
Ms dosMs dos
Лекція №11
Лекція №11Лекція №11
Лекція №11
Michael Attwood
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи
Юлія Артюх
 
лабораторна робота №3
лабораторна робота №3лабораторна робота №3
лабораторна робота №3
Юра Марчук
 
метод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовичаметод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовича
Сергей Янко
 
Урок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування данихУрок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування даних
Василь Тереховський
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
Татьяна Вербицкая
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
Марина Конколович
 
Лекція №13
Лекція №13Лекція №13
Лекція №13
Michael Attwood
 
Android Storage
Android StorageAndroid Storage
Android Storage
Maksym Davydov
 
Інформатика-6. Урок 10
Інформатика-6. Урок 10Інформатика-6. Урок 10
Інформатика-6. Урок 10
Володимир Бондар
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
Maksym Davydov
 
4 клас. урок 2
4 клас. урок 24 клас. урок 2
урок 13 файли та папки
урок 13 файли та папкиурок 13 файли та папки
урок 13 файли та папкиHelen Pat
 
5 клас урок 13 файли та папки
5  клас урок 13 файли та папки 5  клас урок 13 файли та папки
5 клас урок 13 файли та папки Helen Pat
 

Similar to +4 faylovi operaciji_u_s2000 (20)

7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptx
 
файли та папки 6 клас
файли та папки 6 класфайли та папки 6 клас
файли та папки 6 клас
 
ОПЕРАЦІЙНА СИСТЕМА UNIX
ОПЕРАЦІЙНА СИСТЕМА UNIXОПЕРАЦІЙНА СИСТЕМА UNIX
ОПЕРАЦІЙНА СИСТЕМА UNIX
 
Ms dos
Ms dosMs dos
Ms dos
 
Лекція №11
Лекція №11Лекція №11
Лекція №11
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи
 
лабораторна робота №3
лабораторна робота №3лабораторна робота №3
лабораторна робота №3
 
ФАЙЛОВА СИСТЕМА LINUX
ФАЙЛОВА СИСТЕМА LINUX ФАЙЛОВА СИСТЕМА LINUX
ФАЙЛОВА СИСТЕМА LINUX
 
метод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовичаметод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовича
 
презентація вчителя
презентація вчителяпрезентація вчителя
презентація вчителя
 
Урок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування данихУрок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування даних
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
Лекція №13
Лекція №13Лекція №13
Лекція №13
 
Android Storage
Android StorageAndroid Storage
Android Storage
 
Інформатика-6. Урок 10
Інформатика-6. Урок 10Інформатика-6. Урок 10
Інформатика-6. Урок 10
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
 
4 клас. урок 2
4 клас. урок 24 клас. урок 2
4 клас. урок 2
 
урок 13 файли та папки
урок 13 файли та папкиурок 13 файли та папки
урок 13 файли та папки
 
5 клас урок 13 файли та папки
5  клас урок 13 файли та папки 5  клас урок 13 файли та папки
5 клас урок 13 файли та папки
 

More from Ольга Рыбак

Funkciji1
Funkciji1Funkciji1
+6 for
+6 for+6 for
+5 розгал в с++
+5 розгал в с+++5 розгал в с++
+5 розгал в с++
Ольга Рыбак
 
+4 matematychni funkciy_v_s
+4 matematychni funkciy_v_s+4 matematychni funkciy_v_s
+4 matematychni funkciy_v_s
Ольга Рыбак
 
+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000
Ольга Рыбак
 
+3 проста математика
+3 проста математика+3 проста математика
+3 проста математика
Ольга Рыбак
 
+2 типи даних в с++
+2 типи даних в с+++2 типи даних в с++
+2 типи даних в с++
Ольга Рыбак
 
+1 вступ
+1 вступ+1 вступ
+1 вступ
Ольга Рыбак
 

More from Ольга Рыбак (8)

Funkciji1
Funkciji1Funkciji1
Funkciji1
 
+6 for
+6 for+6 for
+6 for
 
+5 розгал в с++
+5 розгал в с+++5 розгал в с++
+5 розгал в с++
 
+4 matematychni funkciy_v_s
+4 matematychni funkciy_v_s+4 matematychni funkciy_v_s
+4 matematychni funkciy_v_s
 
+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000
 
+3 проста математика
+3 проста математика+3 проста математика
+3 проста математика
 
+2 типи даних в с++
+2 типи даних в с+++2 типи даних в с++
+2 типи даних в с++
 
+1 вступ
+1 вступ+1 вступ
+1 вступ
 

Recently uploaded

Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
gravebabyjohn
 
Безбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна нормаБезбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна норма
ssuser15a891
 
High-intent keywords для просування SaaS компаній | Iryna Kutnyak
High-intent keywords для просування SaaS компаній | Iryna KutnyakHigh-intent keywords для просування SaaS компаній | Iryna Kutnyak
High-intent keywords для просування SaaS компаній | Iryna Kutnyak
Collaborator.pro
 
Передвиборча програма Майора Станіслава
Передвиборча програма  Майора СтаніславаПередвиборча програма  Майора Станіслава
Передвиборча програма Майора Станіслава
tetiana1958
 
Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».
Vinnytsia Regional Universal Scientific Library named after Valentin Otamanovsky
 
Криптографія КриптографіяКриптографіяКриптографія
Криптографія КриптографіяКриптографіяКриптографіяКриптографія КриптографіяКриптографіяКриптографія
Криптографія КриптографіяКриптографіяКриптографія
ssuser172ac3
 
№ 133, 04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
№ 133,  04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...№ 133,  04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
№ 133, 04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
olha1koval
 
Передвиборча програма Ковальової Катерини
Передвиборча програма Ковальової КатериниПередвиборча програма Ковальової Катерини
Передвиборча програма Ковальової Катерини
tetiana1958
 
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Чернівецька обласна бібліотека для дітей
 
Майстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій ЯкутовичаМайстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій Якутовича
НБУ для дітей
 
курсова робота теорема Штольца з математики
курсова робота теорема Штольца з математикикурсова робота теорема Штольца з математики
курсова робота теорема Штольца з математики
ssuser3a363c
 
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
yevheniiakhyzhuk
 
Проєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". БуковинаПроєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". Буковина
НБУ для дітей
 

Recently uploaded (13)

Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
Розпад колоніальних імперій. Країни Азії, Африки, Латинської Америки (1945 р....
 
Безбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна нормаБезбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна норма
 
High-intent keywords для просування SaaS компаній | Iryna Kutnyak
High-intent keywords для просування SaaS компаній | Iryna KutnyakHigh-intent keywords для просування SaaS компаній | Iryna Kutnyak
High-intent keywords для просування SaaS компаній | Iryna Kutnyak
 
Передвиборча програма Майора Станіслава
Передвиборча програма  Майора СтаніславаПередвиборча програма  Майора Станіслава
Передвиборча програма Майора Станіслава
 
Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».
 
Криптографія КриптографіяКриптографіяКриптографія
Криптографія КриптографіяКриптографіяКриптографіяКриптографія КриптографіяКриптографіяКриптографія
Криптографія КриптографіяКриптографіяКриптографія
 
№ 133, 04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
№ 133,  04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...№ 133,  04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
№ 133, 04.06.2024, підсумки методичної роботи з учителями школи у 2023-2024 ...
 
Передвиборча програма Ковальової Катерини
Передвиборча програма Ковальової КатериниПередвиборча програма Ковальової Катерини
Передвиборча програма Ковальової Катерини
 
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
 
Майстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій ЯкутовичаМайстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій Якутовича
 
курсова робота теорема Штольца з математики
курсова робота теорема Штольца з математикикурсова робота теорема Штольца з математики
курсова робота теорема Штольца з математики
 
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
Звіт керівника Залав'єцького ЗДО перед громадськістю та колективом за 2023-20...
 
Проєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". БуковинаПроєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". Буковина
 

+4 faylovi operaciji_u_s2000

  • 2. Основні поняття Файл - це сукупність даних, які розміщені на зовнішніх носіях. Файли можуть містить як текстову, так і бінарну інформацію. Функції опрацювання файлів описані в бібліотеці fstream Для опрацювання файлу його необхідно відкрити, виконати потрібні дії та закрити.
  • 3. Зчитування даних із файлу Оголошення файлової змінної та відкриття файлу для читання: ifstream f_in(“filename.txt”, ознака1|ознака2|…|ознакаN); f_in – назва файлової змінної filename.txt – зовнішня назва файлу Ознаки слугують для визначення режиму доступу до файлу. Ознаки зазначати необов'язково. Введення даних: f_in>>a>>b; //числова змінна, рядкова змінна без пропусків f_in.getline(str); //рядкова змінна
  • 4. Визначення кінця файлу. Закриття файлу Для успішного читання довільних файлів потрібно знати, коли зустрінеться кінець файлу: while (!f_in.eof()) {//оператори} Функція name.eof() повертає значення true, якщо досягнуто кінця файлу. Коли для продовження роботи файл більше не потрібен, його слід закрити: f_in.close();
  • 5. Виведення даних у файл Оголошення файлової змінної та відкриття файлу для запису: ofstream f_out(“filename.txt”, ознака1|ознака2|…|ознакаN); f_out – назва файлової змінної filename.txt – зовнішня назва файлу Ознаки слугують для визначення режиму доступу до файлу. Ознаки зазначати необов'язково. Виведення даних: f_out<<a<<b; //числова змінна, рядкова змінна Увага! Якщо не використовувати ознаки, на диску буде створений новий файл із зазначеним ім'ям, або перезаписаний файл із таким же ім'ям, якщо він уже існує
  • 6. Ознаки Ознака Призначення ios::in Відкриває файл для читання. Вміст файлу зберігається ios::out Відкриває файл для записування. Якщо файл не існує, то буде створений ios::app Відкриває файл для дописування. Дані будуть записані у кінець файлу ios::trunk Якщо файл, який відкривають для записування вже існує, то його вміст буде вилучено. ios::nocreate Забороняє створювати файл, який відкривають ios::inoreplace Забороняє перезаписувати існуючий файл
  • 7. Ознаки (приклади) • ofstream flags(“text1.dat”, ios::app); - можна дописати до кінця вже існуючого файлу потрібну інформацію • ofstream flags(“text1.dat”, ios::noreplace); - якщо файл існує і спробувати щось записати у нього, то жодних дій не відбудеться; якщо ж цю ознаку застосувати до нового файлу, то файл буде створено і дані можна буде записувати • ofstream flags(“text1.dat”, ios::nocreate); - якщо файл вже існує, то він може бути відкритий для записування; якщо ж раніше такого файлу на диску не було, то в кращому випадку у файл нічого не запишеться, а в гіршому – програма зависне.
  • 8. Приклади Записати у файл три рядки тексту #include<fstream> using namespace std; int main() {ofstream fout(“output.txt”); fout<<”Prog na C++ “<<”klas ‘309’”<< endl; fout<<”Kiew”<<endl; fout<<”2015 year”<<endl; fout.close(); return 0;} Зчитати з нього текст #include<iostream> #include<fstream> using namespace std; int main() {ifstream fin(“output.txt”); char one[64],two[64],three[64]; fin.getline(one,sizeof(one)); fin.getline(two,sizeof(two)); fin.getline(three,sizeof(three)); fin.close(); cout<<one<<endl; cout<<two<<endl; cout<<three<<endl; return 0;}
  • 9. Приклади (продовження) Читати вміст файлу поки не буде досягнутий кінець файлу: #include<iostream> #include<fstream> using namespace std; int main() {ifstream fin(“output.txt”); char line[64]; while (!fin.eof()) { fin.getline(line,sizeof(line)); cout<<line<<endl; } fin.close(); return 0;} Читати вміст файлу по одному слову за один раз, поки не буде досягнутий кінець файлу: #include<iostream> #include<fstream> using namespace std; int main() {ifstream fin(“output.txt”); char text[64]; while (!fin.eof()) { fin>>text; cout<<text<<endl; } fin.close(); return 0;}
  • 10. Обробка помилок при виконанні файлових операцій Щоб допомогти програмам стежити за помилками, використовується функція name.fail(). Якщо у процесі файлової операції помилок не було, функція поверне false (0). Однак, якщо трапилася помилка, функція поверне true. Наприклад: #include<iostream> #include<fstream> using namespace std; int main() {char line[64]; ifstream fin(“output.txt”); if(fin.fail()) cout<<“error”; else { while (!fin.eof() && (!fin.fail())) { fin.getline(line,sizeof(line)); if (!fin.fail()) cout<<line<<endl; } } fin.close(); return 0;}
  • 11. Завдання 1. У текстовому редакторі створіть файл, у який занесіть прізвища п'яти ваших друзів. Складіть програму, яка б додавала інформацію ще про трьох осіб. Вміст файлу виведіть на екран. 2. У текстовому редакторі створіть файл, у який занесіть координати вершин трикутника. Обчисліть його периметр. Результат записати в інший файл.
  • 12. Приклади використання файлових операцій Зчитати масив. Обчислити суму його додатних елементів #include<iostream> #include<fstream> #include<iomanip> using namespace std; int main() { ifstream fin(“input.txt”); if (fin.fail()) {cout<<“error”; return 1;} else { ofstream fout(“output.txt”, ios::out); int r, s; fin>>r>>s; // кількість рядків та стовпчиків int i, j; // виділення пам'яті під масив int **a=new int *[r]; for (i=0; i<r; i++) a[i]= new int [s]; for (i=0; i<r; i++) // уведення масиву for (j=0; j<s;j++) fin>>a[i][j]; fin.close(); for (i=0; i<r; i++) // виведення масиву { for (j=0; j<s;j++) cout<<a[i][j]<<‘ ‘; cout<<endl; } int k=0; // обчислення for (i=0; i<r; i++) for (j=0; j<s;j++) if (a[i][j]>0) k++; fout<<k; // виведення результату в файл fout.close(); return 0;}
  • 13. Приклади використання файлових операцій Написати програму, яка визначає, чи зустрічається у заданому файлі послідовність символів. Довжина рядку тексту не перевищує 80 символів, текст не містить переносів, послідовність не містить пропусків. #include<fstream.h> #include<string.h> #include<iostream.h> #include<conio.h> int main() { const int len=81; char word[len], line[len]; cout<<“slovo ?”; cin>>word; ifstream fin(“text.txt”, ios::nocreate); if (fine.fail()) {cout<<“error”<<endl; getch(); return 1;} while (!fin.eof()) { fin. getline(line); if (strstr(line,word) { cout<<“yes”<<endl; getch(); return 0;} } cout<<“no”<<endl; getch(); return 0;}
  • 14. Завдання 1. Створити текстовий файл, що складається з одного рядка та містить слова, розділені символом пробілу. Написати програму для підрахунку кількості слів у файлі. 2. Створити програму для записування у текстовий файл додатних цілих чисел, що вказуються користувачем з клавіатури. Критерієм припинення введення має бути введення від'ємного числа. Відкрити створений файл, прочитати з нього числа та знайти їх суму. 3. Кожен рядок текстового файлу складається з однакової кількості символів. У записі рядка використовуються лише два символи – “+” та “*”. Написати програму для виведення на екран номера рядка та номера стовпця кожного символу “+”. Вважати, що нумерація рядків та стовпців починається з нуля.