
Запис та читання даних із файлу
Запис та читання даних із файлу С++ практичний курс програмування
1. Файли у C++
📌 У C++ для роботи з файлами використовується бібліотека <fstream>
.
У цій бібліотеці є три основні класи:
ofstream
(output file stream) – для запису даних у файл.ifstream
(input file stream) – для зчитування даних з файлу.fstream
(file stream) – для читання та запису одночасно.
Перед використанням файлів необхідно підключити бібліотеку:
#include <fstream>
2. Запис даних у файл
Щоб записати дані у файл, потрібно:
1️⃣ Використати клас ofstream
.
2️⃣ Відкрити файл .open("назва_файлу")
.
3️⃣ Використати оператор <<
для запису.
4️⃣ Закрити файл .close()
.
🔹 Приклад запису у файл:
#include <iostream>
#include <fstream> // Підключаємо бібліотеку
using namespace std;
int main() {
ofstream file("data.txt"); // Відкриваємо файл для запису
if (file.is_open()) {
file << "Привіт! Це запис у файл.\n";
file << "Програмування - це цікаво!\n";
file.close(); // Закриваємо файл
cout << "Дані успішно записані у файл!" << endl;
} else {
cout << "Помилка відкриття файлу!" << endl;
}
return 0;
}
✅ Що тут відбувається?
- Ми створюємо файл
data.txt
(якщо його не існує). - Записуємо у нього текстові рядки.
- Закриваємо файл після запису.
📌 Результат у файлі data.txt
:
Привіт! Це запис у файл.
Програмування - це цікаво!
3. Читання даних із файлу
Щоб прочитати дані з файлу, потрібно:
1️⃣ Використати клас ifstream
.
2️⃣ Відкрити файл .open("назва_файлу")
.
3️⃣ Використати оператор >>
або getline()
для зчитування.
4️⃣ Закрити файл .close()
.
🔹 Приклад читання з файлу:
#include <iostream>
#include <fstream> // Підключаємо бібліотеку
using namespace std;
int main() {
ifstream file("data.txt"); // Відкриваємо файл для читання
if (file.is_open()) {
string line;
while (getline(file, line)) { // Зчитуємо файл рядок за рядком
cout << line << endl;
}
file.close(); // Закриваємо файл
} else {
cout << "Помилка відкриття файлу!" << endl;
}
return 0;
}
✅ Що тут відбувається?
- Програма відкриває файл
data.txt
. - Читає його рядок за рядком і виводить у консоль.
- Закриває файл після зчитування.
📌 Результат у консолі:
Привіт! Це запис у файл.
Програмування - це цікаво!
4. Додавання даних у файл (режим append
)
Щоб не перезаписувати файл, а дописувати нові дані, потрібно відкрити його у режимі ios::app
.
🔹 Приклад дописування у файл:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("data.txt", ios::app); // Відкриваємо файл у режимі "append"
if (file.is_open()) {
file << "Цей рядок додано в кінець файлу.\n";
file.close();
cout << "Дані дописані у файл!" << endl;
} else {
cout << "Помилка відкриття файлу!" << endl;
}
return 0;
}
📌 Файл data.txt
після виконання коду:
Привіт! Це запис у файл.
Програмування - це цікаво!
Цей рядок додано в кінець файлу.
5. Читання чисел із файлу
Якщо у файлі зберігаються числа, їх теж можна прочитати:
🔹 Файл numbers.txt
(вміст):
5 10 15 20 25
🔹 Програма для читання чисел із файлу:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("numbers.txt");
if (file.is_open()) {
int number;
while (file >> number) { // Зчитуємо числа по черзі
cout << "Прочитане число: " << number << endl;
}
file.close();
} else {
cout << "Помилка відкриття файлу!" << endl;
}
return 0;
}
📌 Результат у консолі:
Прочитане число: 5
Прочитане число: 10
Прочитане число: 15
Прочитане число: 20
Прочитане число: 25
6. Використання fstream
для читання та запису
Якщо потрібно одночасно працювати з файлом для читання та запису, можна використати fstream
:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream file("data.txt", ios::in | ios::out | ios::app); // Відкриваємо для читання + запису
if (file.is_open()) {
file << "Новий рядок, записаний через fstream!\n"; // Запис
file.seekg(0); // Переміщуємо вказівник читання на початок файлу
string line;
while (getline(file, line)) { // Читаємо файл
cout << line << endl;
}
file.close();
} else {
cout << "Помилка відкриття файлу!" << endl;
}
return 0;
}
📌 Що тут відбувається?
- Ми відкриваємо
data.txt
для запису та читання. - Додаємо новий рядок.
- Переміщаємо курсор на початок (
seekg(0)
). - Читаємо весь файл та виводимо в консоль.
7. Практичні завдання
🏆 Завдання 1:
Напиши програму, яка записує у файл students.txt
дані про 3 учнів (ім’я, вік, середній бал), а потім читає цей файл.
🏆 Завдання 2:
Створи програму, яка записує у файл grades.txt
оцінки учнів і обчислює середній бал.
🏆 Завдання 3:
Реалізуй простий щоденник, який дозволяє користувачу додавати записи у файл та читати їх.
📝 Підсумок уроку
✅ Ми навчилися записувати дані у файл.
✅ Освоїли читання файлів рядками та числами.
✅ Дізналися, як дописувати нові дані у файл без його перезапису.
✅ Використали fstream
для одночасного читання і запису.
🚀 Наступний урок: Створення фінального проєкту – текстова гра або калькулятор! Запис та читання даних із файлу С++ практичний курс програмування