считывает байт или слово в заданном двоичном формате и преобразует в число удвоенной точности
считывает байт или слово в заданном двоичном формате и возвращает целочисленное значение типа int
x = mget([n, type, fd]) x = mgeti([n, type, fd])
положительный скаляр: количество считываемых данных.
скаляр: параметр fd, возращённый функцией mopen. Для последнего открытого файла ставится -1. Значение по умолчанию -1.
строка: двоичный формат, используемый для записи всех элементов
x.
вектор целых чисел или чисел с плавающей запятой.
Функция mget считывает данные со входа, определённого параметром потока fd и возвращает вектор данных с плавающей запятой.
Функция mgeti считывает данные со входа, определённого параметром потока fd и возвращает вектор целочисленных данных.
Данные считываются в положении, на которое в данный момент указывает указатель файла и передвигает индикатор далее соответствующим образом.
Параметр type является указателем преобразования, который может быть установлен в любой из следующих символов-флагов (со значением по умолчанию "l"):
![]() | В Windows, поведение по умолчанию состоит в пропуске байта 13 ( 0x0D).
Функцию mopen следует вызывать с опцией
'b', например, fd1 = mopen(file1,'rb'), так что все байты без исключения будут прочитаны. |
Тип данных:
удвоенная точность, double
плавающая запятая, float
длинное, long long
целочисленное, int (long int)
короткое, short
символ, character
Необязательный флаг:
беззнаковый (в сочетании с одним из вышеперечисленных типов)
прямой порядок байтов (в сочетании с одним из вышеперечисленных типов)
обратный порядок байтов (в сочетании с одним из вышеперечисленных типов)
Чтение байтов автоматически переключается при необходимости (с помощью проверки статуса little=endian).
Такое поведение переключения можно подавить, если добавить флаг в функцию mopen.
Форматы "l", "d" и
"f" корректны только с функцией
mget.
file1 = fullfile(TMPDIR,'test1.bin'); file2 = fullfile(TMPDIR,'test2.bin'); fd1=mopen(file1,'wb'); fd2=mopen(file2,'wb'); mput(1996,'ull',fd1); mput(1996,'ull',fd2); mclose(fd1); mclose(fd2); fd1=mopen(file1,'rb'); if 1996<>mget(1,'ull',fd1) write(%io(2),'Bug'); end fd2=mopen(file2,'rb'); if 1996<>mget(1,'ull',fd2) write(%io(2),'Bug'); end mclose(fd1); mclose(fd2); | ![]() | ![]() |