SlideShare a Scribd company logo
1 of 22
Тема 12.1.
Основні поняття,
визначення та
призначення файлів.
Робота з файлами.
Види файлів.
Загальні відомості про файли
Під час розв'язання задач на комп'ютері часто виникає необхідність у
використанні даних, які записані на зовнішніх носіях інформації (дисках) і
оформлені у вигляді файлів даних [4-8, 12-14,16,18]. Незалежно від того, які дані
містять файли (числа, символи, рядки, масиви, структури тощо), в мові С++
вони трактуються як потоки даних (stream), котрі являють собою послідовність
байтів, що зчитуються або записуються. За замовчуванням у кожній програмі
С++ можна користуватися такими стандартними потоками: стандартного
введення (сіn), стандартного виведення (cout) та виведення помилок (сеrr). Щоб
користуватися файлами, потоки повинні бути створені та закріплені за цими
файлами.
Використання файлів даних у програмі передбачає виконання таких
операцій:
•створення потоку обміну даними між файлом і пам'яттю комп'ютера;
•зв'язування цього потоку з конкретним ім'ям файла на диску і відкриття
файла;
•запис даних у файл або читання їх з файла;
•закриття файла.
•Для реалізації цих операцій існують спеціальні класи, які містять
конструктори створення необхідних потоків:
ifstream — для створення потоку читання даних;
ofstream — для створення потоку запису даних у файл;
fstream — використовується як для запису даних у файл, так і їх читання.
де: іп —  ім'я  потоку,  який  створюється  для  роботи  з  файлом;  іф — 
константа або змінна типу char[ ], її значення — ім'я файла на диску.
Перший  з  конструкторів  використовується  для  запису  даних  у  файл, 
другий — для читання даних з файла, а третій — як для запису, так і для 
читання даних, наприклад:
Конструктори — це спеціальні функції, які мають таке саме ім'я, що й 
ім'я  класу.  Вони  записуються  як  з  параметрами,  так  і  без  параметрів. 
Конструктори  з  параметрами  одночасно  створюють  відповідний  потік, 
зв'язують його з файлом на диску, відкривають файл для роботи і мають 
такі форми запису:
де: іп —  ім'я  відповідного  потоку,  тоді  для  зв'язування  потоку  з  ім'ям 
файла  на  диску  і  відкриття  його  для  роботи  треба  додатково 
використовувати функцію-член відповідного класу, тобто:
Наприклад, відкриття файла для запису до нього даних ма-тиме вигляд:
Конструктори  як  з  параметрами,  так  і  без  них,  виконують  однакову 
роботу, тому яким з них надати перевагу — справа користувача.
Цей  запис  створює  потік  з  ім'ям fout,  зв'язує  його  з  файлом  на  диску, 
який  має  ім'я  myfile.dat і  відкриває  цей  файл  для  запису  даних. 
Файл myfile.dat буде  створено  у  тому  ж  каталозі,  що  і  програма.  Якщо 
треба  створити  файл  у  другому  місці,  то  для  запису  його  імені  треба 
вказати  шлях,  наприклад, a:pvpmyfile.dat.  Тепер  цей  файл  буде 
записано  на  диску а: в  каталозі pvp.  Для  запису  шляху  треба 
використовувати подвійні зворотні косі риски.
Можна  також  для  роботи  з  файлами  застосувати  конструктори  без 
параметрів:
Використання файлів
Приклад 1. Створити файл на диску і записати до нього масив чисел. Прочитати 
цей файл і вивести його компоненти на екран.
Результат розв'язання прикладу має вигляд:
Enter 0 element
15
Enter 1 element
20
Enter 2 element
125
Enter 3 element
94
Enter 4 element
5
REZULTAT
mas[0]=15 mas[i]=20 mas[2]=125 mas[3]=94 mas [4]=5
File reading
Приклад  2. Записати  у  файл  матрицю matr(2,4) поелементно  за  рядками, 
прочитати її з файла і вивести на екран.
Результат розв'язання прикладу:
Input matricu 2x4:
5 7 10 8
15 3 12 10
Matrix matr:
5 7 10 8
15 3 12 10
У цій програмі спочатку елементи матриці з клавіатури вво-дились у пам'ять 
комп'ютера, потім кожен з них записувався у файл з ім'ям filemat. Для цього 
попередньо було створено по-тік out і відкрито файл на диску.
Потім  було  створено  потік in для  зчитування  даних  з  файла  в  пам'ять 
комп'ютера, тобто до матриці matr[i][j]. 
Наприкінці програми матрицю виведено на екран.
Приклад 3. Записати у файл 5 прізвищ, потім прочитати їх і ви­вести на екран.
Результат роботи програми має вигляд:
Vvedite 1 famil
Avdeev N. M.
Vvedite 2 famil
Bobrov G. K.
Vvedite 3 famil
Rusakov A. U.
Vvedite 4 famil
Popov Т. K.
Vvedite 5 famil
Jasin H. D.
Reading file
Avdeev N.M. Bobrov G.K. Rusakov A.U. Popov Т.К. Jasin H.D.
У  попередніх  програмах  запис  даних  у  файл  та  їх  читання  з  файла 
здійснювалось послідовно (поелементно). Але записати або прочитати 
декілька даних (наприклад, масив чисел) можна однією операцією. 
Для цього використовують функції­члени відповідних класів, які мають 
вигляд:
де: іn — ім'я потоку введення або виведення; р — змінна будь­якого 
типу, якщо змінна р має тип char[ ], то операція її приведення не 
потрібна.
Приклад 4. Записати у файл масив mas[ ] однією операцією, потім прочитати 
цей файл теж однією операцією в масив masl[ ] і вивести цей масив на екран.
// Р10_4.СРР — запись в файл одномерного массива одной операцией
Результат роботи програми має вигляд:
      file reading 10 20 30 40 51
Розглянемо, наприклад, створення файла, в якому необхідно записати список 
прізвищ  абонентів  та  їх  телефони  (дані  типу  структура),  а  потім  за  потреби 
виведення  на  екран  або  всього  списку,  або  тільки  потрібних  прізвищ  і 
відповідних номерів телефонів.
Приклад 5. Записати  у  файл  числову  матрицю  розміром  3x5,  потім, 
користуючись  засобами  прямого  доступу,  прочитати  з  файла  спочатку  другий 
рядок, а потім перший.
Результат роботи
програми:
Enter Ostroku
12 3 4 15 0
Enter lstroku
5 6 17 8 10
Enter 2stroku
11 45 9 46 3
Vivod 2 і 1 strok
matrix
5 6 17 8 10
12 3 4 15 0

More Related Content

What's hot (15)

Ntfs & fat32
Ntfs & fat32Ntfs & fat32
Ntfs & fat32
 
информатика. ос
информатика. осинформатика. ос
информатика. ос
 
бази даних
бази данихбази даних
бази даних
 
1
11
1
 
5 клас урок 7
5 клас урок 75 клас урок 7
5 клас урок 7
 
Faili i papki
Faili i papkiFaili i papki
Faili i papki
 
програмування мовою паскаль
програмування мовою паскальпрограмування мовою паскаль
програмування мовою паскаль
 
Особливості пошуку в Google
Особливості пошуку в GoogleОсобливості пошуку в Google
Особливості пошуку в Google
 
Lec2
Lec2Lec2
Lec2
 
урок № 9 6 клас
урок № 9   6 класурок № 9   6 клас
урок № 9 6 клас
 
система Ms-dos 20
 система Ms-dos 20 система Ms-dos 20
система Ms-dos 20
 
Операційна система
Операційна системаОпераційна система
Операційна система
 
файли
файлифайли
файли
 
резервуння даних
резервуння данихрезервуння даних
резервуння даних
 
9kl urok 17_tema_ss
9kl urok 17_tema_ss9kl urok 17_tema_ss
9kl urok 17_tema_ss
 

Similar to файли

7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptxssuser3b34ba
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системиЮлія Артюх
 
Урок 7 Операційна ситема її складові та функції
Урок 7 Операційна ситема її складові та функціїУрок 7 Операційна ситема її складові та функції
Урок 7 Операційна ситема її складові та функціїStAlKeRoV
 
урок 9. файлова система та її обєкти
урок 9. файлова система та її обєктиурок 9. файлова система та її обєкти
урок 9. файлова система та її обєктиSchool5uman
 
урок 41 6 клас
урок 41 6 класурок 41 6 клас
урок 41 6 класmrsvetlana01
 
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папкиkissoli
 
Системне програмне забезпечення
Системне програмне забезпеченняСистемне програмне забезпечення
Системне програмне забезпеченняbondarvm
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android StorageMaksym Davydov
 

Similar to файли (20)

7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptx
 
6 9
6 96 9
6 9
 
+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
Урок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування данихУрок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування даних
 
Урок 7 Операційна ситема її складові та функції
Урок 7 Операційна ситема її складові та функціїУрок 7 Операційна ситема її складові та функції
Урок 7 Операційна ситема її складові та функції
 
6 клас урок №9
6 клас урок №96 клас урок №9
6 клас урок №9
 
09
0909
09
 
Razdel6
Razdel6Razdel6
Razdel6
 
Razdel6
Razdel6Razdel6
Razdel6
 
урок 9. файлова система та її обєкти
урок 9. файлова система та її обєктиурок 9. файлова система та її обєкти
урок 9. файлова система та її обєкти
 
презентація вчителя
презентація вчителяпрезентація вчителя
презентація вчителя
 
урок 41 6 клас
урок 41 6 класурок 41 6 клас
урок 41 6 клас
 
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
 
Системне програмне забезпечення
Системне програмне забезпеченняСистемне програмне забезпечення
Системне програмне забезпечення
 
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
 

More from cit-cit

лекція 5
лекція 5лекція 5
лекція 5cit-cit
 
лаборатор. 10
лаборатор. 10лаборатор. 10
лаборатор. 10cit-cit
 
лекція 19
лекція 19лекція 19
лекція 19cit-cit
 
лекція 18
лекція 18лекція 18
лекція 18cit-cit
 
лекція 17
лекція 17лекція 17
лекція 17cit-cit
 
лекція 16
лекція 16лекція 16
лекція 16cit-cit
 
лекція 12
лекція 12лекція 12
лекція 12cit-cit
 
лекція 11
лекція 11лекція 11
лекція 11cit-cit
 
лекція 10
лекція 10лекція 10
лекція 10cit-cit
 
лаборатор. 15
лаборатор. 15лаборатор. 15
лаборатор. 15cit-cit
 
лаборатор. 14
лаборатор. 14лаборатор. 14
лаборатор. 14cit-cit
 
лаборатор. 13
лаборатор. 13лаборатор. 13
лаборатор. 13cit-cit
 
лаборатор. 12
лаборатор. 12лаборатор. 12
лаборатор. 12cit-cit
 
лаборатор. 11
лаборатор. 11лаборатор. 11
лаборатор. 11cit-cit
 
лаборатор. 9
лаборатор. 9лаборатор. 9
лаборатор. 9cit-cit
 
лаборатор. 8
лаборатор. 8лаборатор. 8
лаборатор. 8cit-cit
 
лаборатор. 7
лаборатор. 7лаборатор. 7
лаборатор. 7cit-cit
 
лекція 15 (pdf.io)
лекція 15 (pdf.io)лекція 15 (pdf.io)
лекція 15 (pdf.io)cit-cit
 
лекція 14 (pdf.io)
лекція 14 (pdf.io)лекція 14 (pdf.io)
лекція 14 (pdf.io)cit-cit
 
лекція 13 (pdf.io)
лекція 13 (pdf.io)лекція 13 (pdf.io)
лекція 13 (pdf.io)cit-cit
 

More from cit-cit (20)

лекція 5
лекція 5лекція 5
лекція 5
 
лаборатор. 10
лаборатор. 10лаборатор. 10
лаборатор. 10
 
лекція 19
лекція 19лекція 19
лекція 19
 
лекція 18
лекція 18лекція 18
лекція 18
 
лекція 17
лекція 17лекція 17
лекція 17
 
лекція 16
лекція 16лекція 16
лекція 16
 
лекція 12
лекція 12лекція 12
лекція 12
 
лекція 11
лекція 11лекція 11
лекція 11
 
лекція 10
лекція 10лекція 10
лекція 10
 
лаборатор. 15
лаборатор. 15лаборатор. 15
лаборатор. 15
 
лаборатор. 14
лаборатор. 14лаборатор. 14
лаборатор. 14
 
лаборатор. 13
лаборатор. 13лаборатор. 13
лаборатор. 13
 
лаборатор. 12
лаборатор. 12лаборатор. 12
лаборатор. 12
 
лаборатор. 11
лаборатор. 11лаборатор. 11
лаборатор. 11
 
лаборатор. 9
лаборатор. 9лаборатор. 9
лаборатор. 9
 
лаборатор. 8
лаборатор. 8лаборатор. 8
лаборатор. 8
 
лаборатор. 7
лаборатор. 7лаборатор. 7
лаборатор. 7
 
лекція 15 (pdf.io)
лекція 15 (pdf.io)лекція 15 (pdf.io)
лекція 15 (pdf.io)
 
лекція 14 (pdf.io)
лекція 14 (pdf.io)лекція 14 (pdf.io)
лекція 14 (pdf.io)
 
лекція 13 (pdf.io)
лекція 13 (pdf.io)лекція 13 (pdf.io)
лекція 13 (pdf.io)
 

файли

  • 1. Тема 12.1. Основні поняття, визначення та призначення файлів. Робота з файлами. Види файлів.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. Під час розв'язання задач на комп'ютері часто виникає необхідність у використанні даних, які записані на зовнішніх носіях інформації (дисках) і оформлені у вигляді файлів даних [4-8, 12-14,16,18]. Незалежно від того, які дані містять файли (числа, символи, рядки, масиви, структури тощо), в мові С++ вони трактуються як потоки даних (stream), котрі являють собою послідовність байтів, що зчитуються або записуються. За замовчуванням у кожній програмі С++ можна користуватися такими стандартними потоками: стандартного введення (сіn), стандартного виведення (cout) та виведення помилок (сеrr). Щоб користуватися файлами, потоки повинні бути створені та закріплені за цими файлами. Використання файлів даних у програмі передбачає виконання таких операцій: •створення потоку обміну даними між файлом і пам'яттю комп'ютера; •зв'язування цього потоку з конкретним ім'ям файла на диску і відкриття файла; •запис даних у файл або читання їх з файла; •закриття файла. •Для реалізації цих операцій існують спеціальні класи, які містять конструктори створення необхідних потоків: ifstream — для створення потоку читання даних; ofstream — для створення потоку запису даних у файл; fstream — використовується як для запису даних у файл, так і їх читання.
  • 13. де: іп —  ім'я  потоку,  який  створюється  для  роботи  з  файлом;  іф —  константа або змінна типу char[ ], її значення — ім'я файла на диску. Перший  з  конструкторів  використовується  для  запису  даних  у  файл,  другий — для читання даних з файла, а третій — як для запису, так і для  читання даних, наприклад: Конструктори — це спеціальні функції, які мають таке саме ім'я, що й  ім'я  класу.  Вони  записуються  як  з  параметрами,  так  і  без  параметрів.  Конструктори  з  параметрами  одночасно  створюють  відповідний  потік,  зв'язують його з файлом на диску, відкривають файл для роботи і мають  такі форми запису:
  • 14. де: іп —  ім'я  відповідного  потоку,  тоді  для  зв'язування  потоку  з  ім'ям  файла  на  диску  і  відкриття  його  для  роботи  треба  додатково  використовувати функцію-член відповідного класу, тобто: Наприклад, відкриття файла для запису до нього даних ма-тиме вигляд: Конструктори  як  з  параметрами,  так  і  без  них,  виконують  однакову  роботу, тому яким з них надати перевагу — справа користувача. Цей  запис  створює  потік  з  ім'ям fout,  зв'язує  його  з  файлом  на  диску,  який  має  ім'я  myfile.dat і  відкриває  цей  файл  для  запису  даних.  Файл myfile.dat буде  створено  у  тому  ж  каталозі,  що  і  програма.  Якщо  треба  створити  файл  у  другому  місці,  то  для  запису  його  імені  треба  вказати  шлях,  наприклад, a:pvpmyfile.dat.  Тепер  цей  файл  буде  записано  на  диску а: в  каталозі pvp.  Для  запису  шляху  треба  використовувати подвійні зворотні косі риски. Можна  також  для  роботи  з  файлами  застосувати  конструктори  без  параметрів:
  • 16. Результат розв'язання прикладу має вигляд: Enter 0 element 15 Enter 1 element 20 Enter 2 element 125 Enter 3 element 94 Enter 4 element 5 REZULTAT mas[0]=15 mas[i]=20 mas[2]=125 mas[3]=94 mas [4]=5 File reading
  • 17. Приклад  2. Записати  у  файл  матрицю matr(2,4) поелементно  за  рядками,  прочитати її з файла і вивести на екран.
  • 18. Результат розв'язання прикладу: Input matricu 2x4: 5 7 10 8 15 3 12 10 Matrix matr: 5 7 10 8 15 3 12 10 У цій програмі спочатку елементи матриці з клавіатури вво-дились у пам'ять  комп'ютера, потім кожен з них записувався у файл з ім'ям filemat. Для цього  попередньо було створено по-тік out і відкрито файл на диску. Потім  було  створено  потік in для  зчитування  даних  з  файла  в  пам'ять  комп'ютера, тобто до матриці matr[i][j].  Наприкінці програми матрицю виведено на екран.
  • 20. Результат роботи програми має вигляд: Vvedite 1 famil Avdeev N. M. Vvedite 2 famil Bobrov G. K. Vvedite 3 famil Rusakov A. U. Vvedite 4 famil Popov Т. K. Vvedite 5 famil Jasin H. D. Reading file Avdeev N.M. Bobrov G.K. Rusakov A.U. Popov Т.К. Jasin H.D. У  попередніх  програмах  запис  даних  у  файл  та  їх  читання  з  файла  здійснювалось послідовно (поелементно). Але записати або прочитати  декілька даних (наприклад, масив чисел) можна однією операцією.  Для цього використовують функції­члени відповідних класів, які мають  вигляд: де: іn — ім'я потоку введення або виведення; р — змінна будь­якого  типу, якщо змінна р має тип char[ ], то операція її приведення не  потрібна.
  • 21. Приклад 4. Записати у файл масив mas[ ] однією операцією, потім прочитати  цей файл теж однією операцією в масив masl[ ] і вивести цей масив на екран. // Р10_4.СРР — запись в файл одномерного массива одной операцией Результат роботи програми має вигляд:       file reading 10 20 30 40 51 Розглянемо, наприклад, створення файла, в якому необхідно записати список  прізвищ  абонентів  та  їх  телефони  (дані  типу  структура),  а  потім  за  потреби  виведення  на  екран  або  всього  списку,  або  тільки  потрібних  прізвищ  і  відповідних номерів телефонів.
  • 22. Приклад 5. Записати  у  файл  числову  матрицю  розміром  3x5,  потім,  користуючись  засобами  прямого  доступу,  прочитати  з  файла  спочатку  другий  рядок, а потім перший. Результат роботи програми: Enter Ostroku 12 3 4 15 0 Enter lstroku 5 6 17 8 10 Enter 2stroku 11 45 9 46 3 Vivod 2 і 1 strok matrix 5 6 17 8 10 12 3 4 15 0