mput
записывает байт или слово в заданном двоичном формате
Синтаксис
mput(x [, type, fd])
Аргументы
- x
вектор целых чисел или чисел с плавающей запятой.
- fd
скаляр: дескриптор файла, возвращённый функцией
mopen
. Значение по умолчанию равно -1, что означает последний файл, открытый функциейmopen
.- type
строка: двоичный формат, используемый для записи всех элементов
x
.
Описание
Функция mput
записывает данные в выход,
определённый параметром потока fd
. Данные
записываются в место, на которое в данный момент указывает указатель
положения в файле, и передвигает указатель дальше соответствующим
образом.
Параметр type
-- это определитель преобразования, который может быть установлен любым из следующих символов (значение по умолчанию "l"
):
- "l", "i", "s", "ul", "ui", "us", "d", "f", "c", "uc"
для записи соответственно типов long long, int(long int), short, unsigned long long, unsigned int(long int), unsigned short, double, float, char и unsigned char. Байты, которые записываются, автоматически переставляются, если нужно (это проверяется статусом прямого порядка байтов) для того, чтобы сделать двоичные файлы, независимые от машины. Режим перестановки байтов по умолчанию может быть подавлен добавлением флага
swap = 0
в функцииmopen
.- "..l" или "..b"
Можно также записывать в режиме обратной и прямой последовательности байтов, добавляя символ
"l"
или"b"
в конец указателя типаtype
. Например,"db"
будет записывать тип double в режиме обратного порядка байтов.
Примеры
filen = 'test.bin'; mopen(filen,'wb'); mput(1996,'l');mput(1996,'i');mput(1996,'s');mput(98,'c'); // force little-endian mput(1996,'ll');mput(1996,'il');mput(1996,'sl');mput(98,'cl'); // force big-endian mput(1996,'lb');mput(1996,'ib');mput(1996,'sb');mput(98,'cb'); mclose(); mopen(filen,'rb'); if 1996<>mget(1,'l') then pause,end if 1996<>mget(1,'i') then pause,end if 1996<>mget(1,'s') then pause,end if 98<>mget(1,'c') then pause,end // force little-endian if 1996<>mget(1,'ll') then pause,end if 1996<>mget(1,'il') then pause,end if 1996<>mget(1,'sl') then pause,end if 98<>mget(1,'cl') then pause,end // force big-endian if 1996<>mget(1,'lb') then pause,end if 1996<>mget(1,'ib') then pause,end if 1996<>mget(1,'sb') then pause,end if 98<>mget(1,'cb') then pause,end mclose();
Смотрите также
- mclose — закрывает открытые файлы
- meof — проверяет достигнут ли конец файла
- mfprintf — преобразует, форматирует и записывает данные в файл
- fprintfMat — записывает матрицу в файл
- mfscanf — считывает входные данные из потока, указанного указателем потока (интерфейс с C-функцией fscanf)
- fscanfMat — считывает матрицу из текстового файла
- mget — проверяет числа в двоичом файле и возвращает их в виде десятичных чисел
- mgetl — считывает строки из текстового файла
- mgetstr — считывает символьную строку из файла
- mopen — открывает файл в Scilab'е
- mprintf — converts, formats, and writes data to the main scilab window
- mputl — записывает строки в текстовый файл
- mputstr — запись отдельного текста в открытый файл
- mseek — устанавливает текущую позицию в двоичном файле
- mtell — возвращает смещение текущего байта относительно начала файла
- mdelete — удаляет файлы
Report an issue | ||
<< mopen | Файлы: функции ввода/вывода | mputl >> |