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