C++ Урок 14: Работа с файлами (чтение и запись)

Работа с файлами — важная составляющая многих программ, ведь большинство приложений взаимодействуют с файлами для сохранения и загрузки данных. Примеры — текстовые редакторы (Word), где файлы сохраняются в различных форматах (например, .txt или .docx). В языке C++ работа с файлами — обширная тема, но мы рассмотрим базовые операции: запись и чтение данных. Эти операции во многом схожи с выводом и вводом данных в консоли, но используют другие функции и классы.

Подключение заголовочного файла

Для работы с файлами необходимо подключить заголовочный файл fstream:

#include <fstream>

Этот файл предоставляет необходимые средства для создания, открытия, записи и чтения файлов.

Запись в файл

Для работы с файлами создается объект класса ofstream. Этот класс позволяет создавать и записывать данные в файлы. Можно сразу указать имя файла при создании объекта:

ofstream файл("текст.txt");

Если файла не существует, он будет создан. Для пользователей macOS важно установить рабочую директорию, используя Working Directory в настройках IDE, чтобы файлы сохранялись в нужном месте.

Запись в файл осуществляется аналогично выводу в консоль, но вместо cout используется объект файл:

файл << "Work with files in C++"; 

После завершения работы с файлом его необходимо закрыть:

файл.close();

Чтение из файла

Для чтения из файла используется класс ifstream. Создадим объект этого класса и откроем файл:

ifstream файл("текст.txt");

Проверим, успешно ли открыт файл:

if (!файл.is_open()) {
    cout << "Error: file is not found" << endl;
} else {
    // ... код для чтения ...
}

Для чтения данных можно использовать различные методы. Например, для чтения посимвольно можно использовать оператор >>:

char текст[50];
файл >> текст;
cout << текст << endl; // Выведет только первое слово

Функция getline() позволяет читать строки:

char текст[50];
файл.getline(текст, 50);
cout << текст << endl;

Режимы открытия файлов и обработка ошибок

При открытии файла можно указать различные режимы, например, запись в конец файла (ios::app):

ofstream файл("текст.txt", ios::app);
файл << "Дополнительная информация";

Другие режимы, такие как открытие файла в двоичном режиме (ios::binary) и другие, можно найти в документации.

Важно обрабатывать возможные ошибки при работе с файлами, например, отсутствие файла:

if (!файл.is_open()) {
    cerr << "Ошибка: файл не найден!" << endl;
}

В этом уроке мы рассмотрели основные операции по работе с файлами в C++: создание, запись и чтение данных, а также обработку ошибок. Использование классов ofstream и ifstream позволяет эффективно управлять файлами, обеспечивая корректную работу с данными. Помните о необходимости закрытия файлов после завершения работы с ними.

Что будем искать? Например,программа