14.2.4 Форматированный вывод
В этом разделе описывается, как вызывать printf и связанные функции.
Для форматированного вывода доступны следующие функции. Они моделируются по одноимённым функциям языка C, но интерпретируют шаблон форматирования по-другому, чтобы повысить производительность печати векторов и матриц.
Примечание реализации: для совместимости с MATLAB, управляющие последовательности в строке шаблона (например, "\n" => новая строка) расширяются даже тогда, когда строка шаблона определена с помощью одинарных кавычек.
- : printf (шаблон, …) ¶
- : число_байтов = printf (…) ¶
-
Печать необязательных аргументов под управлением строки шаблона шаблон в поток
stdoutи возвращение количества напечатанных символов.Полное описание синтаксиса строки шаблона см. в разделе «Форматированный вывод» руководства GNU Octave.
Необязательный вывод число_байтов возвращает количество напечатанных байтов.
Примечание реализации: для совместимости с MATLAB, управляющие последовательности в строке шаблона (например,
"\n"=> новая строка) расширяются даже тогда, когда строка шаблона определена с помощью одинарных кавычек.
- : fprintf (fid, шаблон, …) ¶
- : fprintf (шаблон, …) ¶
- : число_байтов = fprintf (…) ¶
-
Эта функция эквивалентна
printf, за исключением того, что вывод записывается в дескриптор файла fid вместоstdout.Если fid опущено, вывод записывается в
stdout, делая функцию точно эквивалентнойprintf.Необязательный вывод число_байтов возвращает количество записанных в файл байтов.
Примечание реализации: для совместимости с MATLAB, управляющие последовательности в строке шаблона (например,
"\n"=> новая строка) расширяются даже тогда, когда строка шаблона определена с помощью одинарных кавычек.См. также: fputs, fdisp, fwrite, fscanf, printf, sprintf, fopen.
- : строка = sprintf (шаблон, …) ¶
-
Это аналогично
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/v8.1.0/Formatted-Output.html