Клас std::fstream, Оголошення та ініціалізація об’єктів введення та виведення, Введення з файлу і запис у файл, Введення даних до кінця файлу, Закриття файлів
1 of 2
Downloaded 20 times
More Related Content
Робота з файлами в C++
1. Робота з файлами в C++
Клас std::fstream.......................................................................................................1
Оголошення та ініціалізація об’єктів введення та виведення................................1
Введення з файлу і запис у файл .............................................................................1
Введення даних до кінця файлу ..............................................................................2
«Закладка»................................................................................................................2
Закриття файлів ........................................................................................................2
Клас std::fstream
Для введення (зчитування) з файлу та виведення (запис) даних у файл можна використовувати
бібліотеку з класом fstream:
#include <fstream> //Підключення бібліотеки fstream
Ми вже використовували потокове введення/виведення даних, працюючи з об’єктами cin та cout
класу iostream. Робота з об’єктами класу fstream аналогічна роботі об’єктів cin та cout.
Оголошення та ініціалізація об’єктів введення та виведення
В класі iostream об’єкти cin та cout вже оголошені. При роботі з класом fstream об’єкти введення і
виведення потрібно оголошувати. Нехай назви наших об’єктів будуть inf та outf:
//Оголошуємо об'єкт inf для потокового введення
ifstream inf;
//Оголошуємо об'єкт outf для потокового виведення
ofstream outf;
Введення та вивід даних будемо здійснювати з використанням текстових файлів відповідно input.txt
та output.txt. Для відкриття файлів використовуємо метод open(). Файли input.txt та output.txt
містяться в одній папці з виконавчим файлом програми:
inf.open("input.txt"); //відкриваємо вже існуючий файл для зчитування
outf.open("output.txt"); //створюємо (при потребі) та відкриваємо файл для
запису
Файли можуть міститись і в іншому місці, тоді в метод open() передається абсолютний шлях до даних
файлів:
inf.open("C:/input.txt");
outf.open("C:/output.txt");
Оголошення об’єктів та відкриття відповідних файлів можна здійснити однією командою:
ifstream inf("input.txt");//Оголошення та ініціалізація об'єкту inf
ofstream outf("output.txt");//Оголошення та ініціалізація об'єкту outf
Введення з файлу і запис у файл
Далі робота з об’єктами inf та outf нагадує роботу з об’єктами cin та cout:
2. inf >> a; //Зчитуємо значення змінної з файлу
a = a * a; //Обробляємо змінну
outf << a << endl; //Виводимо результат у файл
Введення даних до кінця файлу
Деякі задачі вимагають зчитування даних з файлу до тих пір, поки не досягнуто кінця файлу. Нам
невідомо кількість цих даних. Тому для зчитування будемо використовувати цикл з умовою while. За
умову циклу покладемо логічний вираз «не досягнуто кінця файлу». В fstream є метод eof(), що
визначає чи досягнуто кінець файлу:
int d;
while(!inf.eof()){ //Поки не досягнуто кінця файлу
inf >> d; //Вводимо значення змінної
outf << d * d << endl; //Виводимо квадрат змінної
}
«Закладка»
Часто потрібно вводити дані з файлу до певного моменту, поки не зустрінемо «закладку», наприклад
число 0:
int d, m;
inf >> d; //Перше зчитування робимо до циклу
while(d != 0){ //Поки не дійшли до нуля
if (m<d) m=d; //Здійснюємо алгоритм
inf>>d; //Зчитуємо наступне значення змінної
}
Закриття файлів
Після завершення роботи з файлами, їх потрібно закрити:
inf.close();
outf.close();