Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - Русский


преобразует, форматирует и записывает данные в файл


mfprintf(fd, format, a1, ..., an)



скаляр, файловый дескриптор, предоставленный с помощью mopen (это положительное число).

Если fd равен 0, то перенаправление в стандартное устройство вывода сообщений об ошибках (stderr).

Если fd равен 6, то перенаправление в стандартное устройство вывода (stdout).

УСТАРЕЛО: значение -1 относится к файлу по умолчанию (т. е. последнему открытому файлу).


a string providing the format to use to write all next arguments. The format follows -- as close as possible -- the C printf format operand syntax, as described in the printf_conversion page. UTF-8 extended characters are supported.

Numbered placeholders "%n$.." are not supported.

a1, ..., an

Data to be converted and written according to the format argument. Supported types: all numbers, booleans, strings. Only the real part of complex numbers is considered (current Scilab limitation).


mfprintf(fd, format, a1, a2, ..) replaces placeholders provided in the format string with values of a1, a2, .. converted according to each respective placeholder directive, and writes the result to the file specified by its index fd.

If a1, a2, .. are arrays with multiple rows, they feed the format row by row: the format is used iteratively for every row of the (horizontally "concatenated") arrays, until the bottom of the least tall array is reached. Remaining rows of taller arrays (if any) are ignored. See examples.

If the total number of columns of a1, a2, .. is bigger than the number of placeholders in the format, then extra columns are ignored. If it is smaller, an error is yielded.

Функция mfprintf является интерфейсом для версии функции fprintf на языке C.


fd = mopen(TMPDIR+'/text.txt','wt');
mfprintf(fd,'Привет, %s %d.\n','мир!',1);
mfprintf(fd,'Привет, %s %d.\n','Scilab',2);
mfprintf(fd,'Эта строка построена с помощью вектор-столбца (26:28) %d.\n',[26:28].');
mfprintf(fd,'Эта строка построена с помощью вектор-строки (26:28) %d.\n',[26:28]);
A = rand(3,6);
mfprintf(fd,'Эта строка построена с помощью матрицы %.3f.\n',A);

mfprintf(0,'stderr output.\n');
mfprintf(6,'stdout output.\n');

I = (1:4)';
A = [26.93 ; 63.25 ; 40.51 ; 91.84];
B = [ 3.62 ; 15.04 ; 25.3  ; 48.19];
C = [ 4.37   28.06
     48.18   %inf
     41.48   %nan
     26.39   77.83];
Status = ["NOK" "NOK" "NOK" "OK"]';
Format = "Iteration %d: Results: A= %f   B= %2d%%  Status= %3s   C(1)= %g  C(2)= %e\n";
File = TMPDIR + "/mfprintf.txt";
fd = mopen(File, 'wt');
mfprintf(fd, Format, I, A, B, Status, C);
Iteration 1: Results: A= 26.930000   B=  3%  Status= NOK   C(1)= 4.37  C(2)= 2.806000e+01
Iteration 2: Results: A= 63.250000   B= 15%  Status= NOK   C(1)= 48.18  C(2)= Inf
Iteration 3: Results: A= 40.510000   B= 25%  Status= NOK   C(1)= 41.48  C(2)= Nan
Iteration 4: Results: A= 91.840000   B= 48%  Status=  OK   C(1)= 26.39  C(2)= 7.783000e+01

Supernumerary columns or rows are ignored:

A = [%T  %F  %T  %T  %F]';
B = [ 4.37   28.06
     48.18   %inf
     41.48   %nan ];
File = TMPDIR + "/mfprintf.txt";
fd = mopen(File, 'wt');
mfprintf(fd, "OK? %s  Value: %4.1f\n", A, B)
OK? T  Value:  4.4
OK? F  Value: 48.2
OK? T  Value: 41.5

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

  • printf_conversion — mprintf, msprintf, mfprintf C-format specifications
  • csvWrite — Write comma-separated value file
  • fprintfMat — записывает матрицу в файл
  • write — writes real numbers or strings in the console or in a formatted file
  • mputl — записывает строки в текстовый файл
  • mputstr — запись отдельного текста в открытый файл
  • mopen — открывает файл в Scilab'е
  • mclose — закрывает открытые файлы
  • msprintf — converts, formats, and writes data to the main scilab window
  • mfscanf — считывает входные данные из потока, указанного указателем потока (интерфейс с C-функцией fscanf)


6.1.1 Input data can be boolean.
Report an issue
<< merror Файлы: функции ввода/вывода mfscanf >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:28:48 CET 2023