SlideShare uma empresa Scribd logo
1 de 14
Файлові операції у С++
Основні поняття
Файл - це сукупність даних, які розміщені на зовнішніх носіях.
Файли можуть містить як текстову, так і бінарну інформацію.
Функції опрацювання файлів описані в бібліотеці 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. Кожен рядок текстового файлу складається з однакової кількості
символів. У записі рядка використовуються лише два символи – “+” та
“*”. Написати програму для виведення на екран номера рядка та
номера стовпця кожного символу “+”. Вважати, що нумерація рядків
та стовпців починається з нуля.

Mais conteúdo relacionado

Mais procurados (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
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 

Semelhante a +4 faylovi operaciji_u_s2000

7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptxssuser3b34ba
 
файли та папки 6 клас
файли та папки 6 класфайли та папки 6 клас
файли та папки 6 класIllariya
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системиЮлія Артюх
 
лабораторна робота №3
лабораторна робота №3лабораторна робота №3
лабораторна робота №3Юра Марчук
 
метод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовичаметод розробка майстра янко сергія сергійовича
метод розробка майстра янко сергія сергійовичаСергей Янко
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android StorageMaksym Davydov
 
урок 13 файли та папки
урок 13 файли та папкиурок 13 файли та папки
урок 13 файли та папкиHelen Pat
 
5 клас урок 13 файли та папки
5  клас урок 13 файли та папки 5  клас урок 13 файли та папки
5 клас урок 13 файли та папки Helen Pat
 

Semelhante a +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 файли та папки
 

Mais de Ольга Рыбак (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 вступ
 

Último

атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfhome
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяssuser0a4f48
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
Defectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxDefectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxOlgaDidenko6
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...JurgenstiX
 
Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdfhome
 
Горбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxГорбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxOlgaDidenko6
 
psychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptpsychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptOlgaDidenko6
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptssuser59e649
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxOlgaDidenko6
 
Проблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняПроблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняtetiana1958
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxOlgaDidenko6
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfssuser15a891
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класkrementsova09nadya
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptxssuserc301ed1
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxOlgaDidenko6
 

Último (17)

атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентація
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
Defectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxDefectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptx
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
 
Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdf
 
Горбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxГорбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptx
 
psychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptpsychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.ppt
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptx
 
Проблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняПроблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішення
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptx
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 клас
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptx
 

+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. Кожен рядок текстового файлу складається з однакової кількості символів. У записі рядка використовуються лише два символи – “+” та “*”. Написати програму для виведення на екран номера рядка та номера стовпця кожного символу “+”. Вважати, що нумерація рядків та стовпців починається з нуля.