
#13 – Работа с файлами при помощи C++
Видеоурок
Многие языки программирования предоставляют классы для работы с файлами и директориями проекта. Язык C++ обладает множеством классов для записи и чтения данных из файлов.
Работа с файлами
При работе с файлами всегда необходимо помнить две вещи:
- Перед началом работы с файлом его необходимо открыть;
- После завершения работы с файлом его необходимо закрыть.
Если файл не открыт или же неверно открыт, то вы не можете полноценно работать с его содержимым.
С закрытием все проще, но и коварнее. Если вы не закроете файл, то программа будет работать верно, тем не менее, чем больше будет открытых файлов, тем больше программа будет перегружена и в какой-то момент она просто зависнет или выключиться.
Исключения и файлы
Поскольку не всегда известно будет ли файл в проекте или на компьютере пользователя, то всегда лучше открывать файлы за счёт использования исключений. Выполняйте открытие файлов в блоке try catch
и тем самым вы обезопасите себя от любых непредвиденных обстоятельств.
Об этом мы еще поговорим в следующих уроках.
Запись данных в файл
При записи данных в файл его изначально необходимо открыть. Для этого в языке C++ используется класс ofstream
:
// Создание/открытие файла "examples.txt"
ofstream itproger_file("examples.txt");
// Можно было использовать метод open
// ofstream itproger_file;
// itproger_file.open("examples.txt");
// но первая запись короче, поэтому стоит использовать её
if (itproger_file.is_open()) { // Проверяем открыт ли файл
itproger_file << "Simple text"; // Записываем текст в файл
itproger_file.close(); // Всегда необходимо закрывать файл
} else // Если файл не удалось открыть, тогда выдаем ошибку
cout << "Error!" << endl;
Таким образом мы можем открыть файл и поместить в него любую информацию.

#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Открываем файл для записи в него текста
ofstream file("test.txt", ios_base::out);
if (file.is_open()) { // Проверяем открыт ли сам файл
file << "Simple world"; // Записываем текст в начало файла
textFile.close(); // Закрываем файл
}
cin.get();
return 0;
}
Чтение данных из файла
Для чтения данных файл необходимо также изначально открыть и в конце закрыть. Чтобы прочесть содержимое файла используется класс ifstream
:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// здесь будет храниться промежуточный текст,
// который мы будем считывать из файла
char temp[100];
ifstream some_file("test.txt"); // открываем файл для чтения
// считываем лишь первое слово и помещаем в переменную temp
some_file >> temp;
cout << temp << endl; // выводим эту переменную
// Считываем определенное количество символов - 100
// и записываем их в нашу переменную
some_file.getline(temp, 100);
some_file.close(); // Закрываем файл
cout << temp << endl; // Отображаем переменную temp
cin.get();
return 0;
}
Исходный код
Весь код будет доступен после подписки на проект!
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть