Бинарный файл/Двоичный файл
В бинарных файлов, входных и выходных данных с добычей и вставки операторов (<< and>>) и функций, таких как GetLine не является эффективным, так как нам не нужно форматировать данные, и данные не могут использовать разделение кодов, используемых текстовые файлы на отдельные элементы (например, пространства, новой строки, и т.д...).
Файл потоки включают в себя два члена функции, специально предназначенные для ввода и вывода данных двоичной последовательно: write and read. Первый (запись) является членом функция озЬгеат унаследовал ofstream. И чтение является членом функция IStream, который унаследовал геат. Объекты класса fstream оба членов. Их прототипами являются: File streams include two member functions specifically designed to input and output binary data sequentially: write and read. Первая (write) является членом функции ostream унаследовал ofstream. И read является членом функции istream который унаследовал ifstream. Объекты класса fstream оба членов. Их прототипами являются: write (memory_block, size); Где memory_block имеет тип "указатель на символ" (символ *), и представляет собой адрес массива байт, где читал элементы данных хранятся или от того, где элементы данных должны быть записаны принимаются. Размер параметр является целым числом, которое определяет число символов для чтения или записи из / в memory block.
В этом примере весь файл считывается и хранится в блоке памяти. Давайте рассмотрим, как это делается:
ifstream::pos_type представляет собой особый тип используется для буфера и позиционирование файла и тип возвращаемого file.tellg (). Этот тип определяется как целое число типа, поэтому мы можем провести на ней те же операции мы проводим на любом другом целое значение, и может быть безопасно преобразован в другой целый тип достаточно большой, чтобы содержать размер файла. Для файла с размером в 2 Гб мы могли бы использовать Int:
После того как мы получили размер файла, мы просим выделение блока памяти, достаточно большой, чтобы держать весь файл:
Сразу после этого мы исходим, чтобы установить получить указатель на начало файла (помните, что мы открыли файл с этого указателя в конце), то читать весь файл, и, наконец, закрыть его:
На данном этапе мы могли бы работать с данными, полученными из файла. Наша программа просто объявляет, что содержимое файла в память, а затем прекращается.
|