14.2.4 Форматированный вывод ¶
В этом разделе описывается, как вызывать printf и связанные функции.
Для форматированного вывода доступны следующие функции. Они моделируются по одноименным функциям языка C, но интерпретируют шаблон формата по-другому, чтобы повысить производительность печати значений векторов и матриц.
Примечание по реализации: Для совместимости с MATLAB, управляющие последовательности в строке шаблона (например, "\n" => перевод строки) расширяются даже при определении строки шаблона с использованием одинарных кавычек.
-
: printf
(template, …)¶ -
:
numbytes =printf(…)¶ -
Печатает необязательные аргументы под управлением строки шаблона template в поток
stdoutи возвращает количество напечатанных символов.Полное описание синтаксиса строки шаблона см. в разделе Форматированный вывод руководства GNU Octave.
Необязательный выход numbytes возвращает количество напечатанных байт.
Примечание по реализации: Для совместимости с MATLAB, управляющие последовательности в строке шаблона (например,
"\n"=> перевод строки) расширяются даже при определении строки шаблона с использованием одинарных кавычек.
-
: fprintf
(fid, template, …)¶ -
: fprintf
(template, …)¶ -
:
numbytes =fprintf(…)¶ -
Эта функция эквивалентна
printf, за исключением того, что вывод записывается в дескриптор файла fid вместоstdout.Если fid опущено, вывод записывается в
stdout, делая функцию точно эквивалентнойprintf.Необязательный выход numbytes возвращает количество записанных в файл байт.
Примечание по реализации: Для совместимости с MATLAB, управляющие последовательности в строке шаблона (например,
"\n"=> перевод строки) расширяются даже при определении строки шаблона с использованием одинарных кавычек.См. также: fputs, fdisp, fwrite, fscanf, printf, sprintf, fopen.
-
:
str =sprintf(template, …)¶ -
Это похоже на
printf, за исключением того, что вывод возвращается в виде строки.В отличие от функции библиотеки C, которая требует предоставления строки соответствующего размера в качестве аргумента, функция Octave
sprintfвозвращает строку, автоматически размером, достаточным для хранения всех преобразованных элементов.Примечание по реализации: Для совместимости с MATLAB, управляющие последовательности в строке шаблона (например,
"\n"=> перевод строки) расширяются даже при определении строки шаблона с использованием одинарных кавычек.
Функция printf может использоваться для печати любого числа аргументов. Строка шаблона, которую вы предоставляете в вызове, содержит информацию не только о количестве дополнительных аргументов, но и об их типах и о том, какой стиль следует использовать для их печати.
Обычные символы в строке шаблона просто записываются в выходной поток как есть, в то время как спецификации преобразования, введенные символом «%» в шаблоне, заставляют последующие аргументы форматироваться и записываться в выходной поток. Например,
pct = 37;
filename = "foo.txt";
printf ("Processed %d%% of '%s'.\nPlease be patient.\n",
pct, filename); производит вывод, подобный
Processed 37% of 'foo.txt'. Please be patient.
Этот пример демонстрирует использование преобразования «%d» для указания того, что скалярный аргумент должен быть напечатан в десятичной записи, преобразования «%s» для указания печати строкового аргумента и преобразования «%%» для печати буквального символа «%».
Также есть преобразования для печати целочисленного аргумента как беззнакового значения в восьмеричной, десятичной или шестнадцатеричной системе счисления («%o», «%u» или «%x» соответственно) или как значение символа («%c»).
Числа с плавающей точкой могут быть напечатаны в обычном, фиксированном формате с использованием преобразования «%f» или в экспоненциальном формате с использованием преобразования «%e». Преобразование «%g» использует формат «%e» или «%f», в зависимости от того, что более подходит для величины конкретного числа.
Вы можете точнее управлять форматированием, написав модификаторы между символом «%» и символом, указывающим, какое преобразование применять. Они немного изменяют обычное поведение преобразования. Например, большинство спецификаций преобразования позволяют указать минимальную ширину поля и флаг, указывающий, хотите ли вы выровнять результат слева или справа в поле.
Конкретные флаги и модификаторы, разрешенные, и их интерпретация зависят от конкретного преобразования. Все они описаны более подробно в следующих разделах.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Formatted-Output.html