Документация
Уроки Открыть IDE
На главную
Урок 24

Работа с файлами

Как сохранить результаты программы и читать внешние данные

Зачем нужны файлы?

До сих пор всё, что делала ваша программа, исчезало после её завершения. Чтобы сохранить данные надолго — их нужно записать в файл.

Файлы позволяют:

  • Сохранять результаты работы (например, таблицу рекордов);
  • Загружать настройки или уровень игры;
  • Обмениваться данными между программами.

Библиотека file

Для работы с файлами в Idyllium используется встроенная библиотека file:

Она предоставляет два типа потоков:

  • file.ostream — для записи в файл (output stream);
  • file.istream — для чтения из файла (input stream).

Открытие файла для записи

Чтобы записывать данные в файл, нужно сначала открыть его функцией file.open():

Разберём:

  • file.ostream — тип объекта «поток вывода в файл»;
  • fout — имя этого объекта (можно любое);
  • file.open() — функция для открытия файла;
  • "output.txt" — имя файла (создастся, если не существует);
  • "write" — режим открытия: запись.

Запись данных: выполнение

После открытия файла можно записывать в него строки с помощью метода write_line():

Метод write_line() работает точно так же, как console.write() — принимает любое количество аргументов и собирает из них строку.

Перенос строки нужно указывать вручную (через '\n'), как и в консоли.

Завершение записи

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

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

Запись данных: полный пример

При выполнении данной программы появится файл output.txt со следующим содержимым:

Привет, мир! Сейчас 2025 год Файл создан с помощью Idyllium!

Открытие файла для чтения

Чтобы прочитать файл, его нужно открыть в режиме "read":

Здесь:

  • file.istream — тип «поток ввода из файла»;
  • fin — имя объекта;
  • file.open() — функция для открытия файла;
  • "input.txt" — имя существующего файла;
  • "read" — режим: чтение.

Если файла не существует — программа выдаст ошибку.

Чтение файла построчно

Возьмём файл с тремя строками:

Кирка Топор Меч

Прочитаем его вручную:

["Кирка\n", "Топор\n", "Меч"]

Здесь возникают две проблемы:

  1. Строки содержат символ '\n' (кроме последней);
  2. Нельзя так читать файл, если количество строк заранее неизвестно.

Очистка строки: метод .trim()

Метод .trim() удаляет управляющие символы (вроде '\n', '\t') из строки:

["Кирка", "Топор", "Меч"]

Теперь строки «чистые» и готовы к использованию.

Чтение файла неизвестной длины

Метод .has_next_line() у объектов типа istream возвращает true, если в файле ещё есть строки:

Такой цикл прочитает файл целиком — независимо от количества строк.

Полный пример: чтение и очистка файла

При входном файле:

Кирка Топор Меч

Программа выведет:

["Кирка", "Топор", "Меч"]

Теперь вы можете читать любые текстовые файлы — сколько бы в них ни было строк.