Запис та читання даних із файлу

Прокрутити вниз

Запис та читання даних із файлу С++ практичний курс програмування

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 для одночасного читання і запису.

🚀 Наступний урок: Створення фінального проєкту – текстова гра або калькулятор! Запис та читання даних із файлу С++ практичний курс програмування

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert