РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
38 of 1245 menu

Макрос include_bytes!

Макрос include_bytes! читает указанный файл во время компиляции и возвращает ссылку на статический массив байтов &'static [u8; N], где N - размер файла в байтах. Параметром макрос принимает путь к файлу в виде строкового литерала. Путь указывается относительно файла, в котором вызывается макрос. Если файл не существует или не может быть прочитан, компиляция завершится ошибкой.

Синтаксис

include_bytes!("path/to/file")

Пример

Давайте включим содержимое файла "data.bin" в программу и выведем количество содержащихся в нём байтов:

fn main() { let data = include_bytes!("data.bin"); println!("{}", data.len()); }

Результат выполнения кода:

5

Пример

Давайте включим текстовый файл "message.txt" и выведем каждый его байт:

fn main() { let data = include_bytes!("message.txt"); for byte in data { println!("{}", byte); } }

Результат выполнения кода:

104 101 108 108 111

Пример

Давайте преобразуем включённые байты обратно в строку с помощью std::str::from_utf8:

fn main() { let data = include_bytes!("message.txt"); let res = std::str::from_utf8(data).unwrap(); println!("{}", res); }

Результат выполнения кода:

"hello"

Смотрите также

  • макрос include_str!,
    который включает файл как строковый литерал
  • макрос file!,
    который возвращает имя текущего файла
  • макрос line!,
    который возвращает номер текущей строки
  • макрос module_path!,
    который возвращает путь текущего модуля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить