printf_conversion
Especificações de conversão de mprintf, msprintf, mfprintf
Descrição
Cada especificação de conversão no parâmetro format de
mprintf
, msprintf
,
mfprintf
possui a seguinte sintaxe:
Um sinal % (porcento).
An optional integer n ≥ 1 followed by "$". n is the index of the input data to substitute to the placeholder, in the msprintf, mprintf .. list of input data. In a format string, placeholders are either all numbered or all non-numbered. A given numbered placeholder can be used only once in its C-format string (Scilab limitation).
Zero ou mais
options
(opções), que modificam o significado da especificação de conversão. A lista seguinte contem os caracteresoption
e seus significados:- : Alinhe à esquerda, dentro do campo, o resultado da conversão. + : Comece o resultado de uma conversão com sinal com um sinal (+ ou -). ' ' : (space) Prefixe um caractere de espaço ao resultado se o primeiro caractere de uma conversão com sinal não for um sinal. Se ambas as opções (espaço) e + aparecerem, a opção (space) é ignorada. # : Converta o valor para uma forma alternativa. Para as conversões c
,d
,i
,s
, eu
, a opção#
não possui efeito. Para a conversãoo
,#
aumenta a precisão para forçar o primeiro dígito do resultado a ser 0 (zero). Para as conversõesx
eX
, um valor não-nulo possui 0x ou 0X prefixado a ele. Para as conversõese, E, f, g,
eG
, o resultado sempre contém ponto decimal, Mesmo que nenhum dígito o siga. Para as conversõesg
eG
, zeros por último não são removidos.0 : Aumente a largura do campo utilizando zeros à esquerda (seguindo qualquer indicação de sinal ou base) para as conversões d
,i
,o
,u
,x
,X
,e
,E
,f
,g
, eG
; nenhum aumento de espaço é realizado. Se ambos os indicadores0
e\-
(barra) aparecerem, o indicador0
é ignorado. Para as conversõesd
,i
,o
u
,x
, eX
, se uma precisão for especificada, o indicador0
também é ignorado.Um string de dígitos decimais opcional que especifica a largura mínima do campo. Se o valor convertido tiver menos caracteres que a largura do campo, o campo é aumentado à esquerda até o comprimento especificado pela largura do campo. Se a opção de ajuste à esquerda for especificada, o campo é aumentado pela direita.
Uma precisão opcional. A precisão é um ponto
.
seguido por um string de dígito decimal. Se nenhuma precisão for fornecida, o parâmetro é tratado como 0 (zero). A precisão especifica:- O número mínimo de dígitos a aparecerem nas conversões
d
,u
,o
,x
, ouX
. - O número de dígitos a aparecerem após o ponto decimal nas
conversões
e
,E
, ef
. - O número máximo de dígitos significativos para as conversões
g
eG
. - O número máximo de caracteres a serem impressos a partir de um
string em uma convesão
s
.
- O número mínimo de dígitos a aparecerem nas conversões
O caractere que indica o tipo de conversão a ser aplicada:
% : Não realiza conversão. Exibe %.. This may be useful for instance to print percentages, or to process some LaTeX expression including LaTeX comments starting with "%", etc.s : Accepts a string or boolean value
e exibe caracteres do string até o fim ou até que o número de caracteres indicados pela precisão seja alcançado. Se nenhuma precisão for especificada, todos os caracteres até o fim são exibidos. UTF-8 extended characters are supported in input strings. Booleans are converted into 'T' or 'F'.c : Not supported. All following conversions accept any decimal numerical or boolean input value
. Only the real part of any input complex number is considered. Booleans are implicitly converted into 0 and 1.d,i : Converts the input value
to a signed integer int32 notation. Conversions for input |Numbers| ≥ 2^31 are not reliable. A precisão especifica o número mínimo de dígitos a aparecer. Se o valor sendo convertido puder ser representado em menos dígitos, ele é expandido com zeros à esquerda. A precisão padrão é 1. O resultado de se converter um valor zero com uma precisão de zero é um string nulo. A especificação de uma largura de campo com zero como caractere mais à esquerda faz com que o valor da largura do campo seja preenchido com zeros à esquerda.u : Converts the input value
to an unsigned integer uint32 notation. Conversions for input |Numbers| ≥ 2^32 are not reliable. A precisão especifica o número mínimo de dígitos a aparecer. Se o valor sendo convertido puder ser representado em menos dígitos, ele é expandido com zeros à esquerda. A precisão padrão é 1. O resultado de se converter um valor zero com uma precisão de zero é um string nulo. A especificação de uma largura de campo com zero como caractere mais à esquerda faz com que o valor da largura do campo seja preenchido com zeros à esquerda.o : Converts the input value
to an unsigned octal notation. Conversions for input |Numbers| ≥ 2^32 are not reliable. A precisão especifica o número mínimo de dígitos a aparecer. Se o valor sendo convertido puder ser representado em menos dígitos, ele é expandido com zeros à esquerda. A precisão padrão é 1. O resultado de se converter um valor zero com uma precisão de zero é um string nulo. A especificação de uma largura de campo com zero como caractere mais à esquerda faz com que o valor da largura do campo seja preenchido com zeros à esquerda. Não é implicado um valor octal para a largura do campo.x, X : Converts the input value
to an unsigned hexadecimal notation. Conversions for input |Numbers| ≥ 2^32 are not reliable. As letras ``abcdef'' são utilizadas para a conversãox
; as letras ``ABCDEF'' são utilizadas para a conversãoX
. A precisão especifica o número mínimo de dígitos a aparecer. Se o valor sendo convertido puder ser representado em menos dígitos, ele é expandido com zeros à esquerda. A precisão padrão é 1. O resultado de se converter um valor zero com uma precisão de zero é um string nulo. A especificação de uma largura de campo com zero como caractere mais à esquerda faz com que o valor da largura do campo seja preenchido com zeros à esquerda.f : Converte o value
de entrada para a sua notação decimal no formato% [\-]ddd.ddd
. O número de dígitos após o ponto decimal é igual à especificação de precisão.- Se nenhuma precisão for especificada, a saída possui seis dígitos
- Se a precisão for zero, nenhum ponto decimal aparece e o sistema
imprime na saída o valor inteiro mais próximo de
value
. - Se a saída possui um ponto decimal, pelo menos um dígito é posto antes dele.
e, E : Converte o value
de entrada para a sua forma exponencial %[\-]d.ddde
+/\-dd
. Há um dígito antes do ponto decimal, e o número de dígitos após o ponto decimal é igual à especificação de precisão.- Se nenhuma precisão for especificada, a saída são seis dígitos.
- Se a precisão for zero, nenhum ponto decimal aparece.
- A caractere de conversão
E
produz um número com o caractere 'E', ao invés de 'e' antes do expoente. O expoente sempre contém pelo menos dois dígitos. Se o valor for zero, o expoente é zero.
g, G : Converte o value
de entrada no estilo dos caracteres de conversãoe
,E
, ouf
, com a precisão especificando o número de dígitos significativos. Zeros por último são removidos. Um ponto decimal aparece apenas se for seguido de um dígito. O estilo depende do valor convertido. O resultado é o estiloe
(E
, seG
é o indicador utilizado) apenas se o expoente resultante da conversão for menor do que -4, ou se for maior do que ou igual à precisão.
Uma largura de campo ou uma precisão podem ser indicadas por
*
(asterísco) ao invés de um string de dígito. Neste
caso, um parâmetro de valor inteiro provê a largura do campo ou a
precisão. O parâmetro de valor convertido para saída não é buscado até que
a letra de conversão seja alcançada, então os parâmetros especificando o
comprimento de campo ou precisão devem aparecer antes do valor a ser
convertido (se houver algum).
Se o resultado da conversão for maior que a largura do campo, o campo é expandido para conter o resultado convertido.
A representação do sinal de mais depende da opção de formatação
especificada, se +
ou (espaço).
Display of exponential form %e is platform dependent with a different number of digits in exponent.
Platform | Example: msprintf("%e",1.23e4) |
Windows | 1.23000e+004 |
Linux/Mac OS | 1.23000e+04 |
Special escaped sequences are supported in Scilab C-format strings:
\n : | Go to Next line (line feed) |
---|---|
\r : | Return: go to the head of current line (for overprinting) |
\t : | horizontal Tab |
\\ : | print a backslash \ |
Exemplos
mprintf('a string: %s\n', 'Scilab'); mprintf('an integer: %d\n', 10); mprintf('an integer: %4d\n', 10); mprintf('a left justified integer: %-4d\n', 10); mprintf('an integer converted to float: %#fd\n',10); mprintf('an integer with a sign: %+4d\n', 10); mprintf('an integer with a sign: %+4d\n', -10); mprintf('an integer padded with zeros: %04d\n', 10); mprintf('an unsigned integer: %u\n', 10); mprintf('an unsigned integer: %4u\n', -10); mprintf('an integer converted to hexadecimal: %x\n', 10); mprintf('a float: %d\n', %pi); mprintf('a float: %3.2d\n', %pi); mprintf('a float (exponential form): %3.2e\n', %pi); mprintf('a float (exponential form): %3.2g\n', %pi); mprintf('a character: %c\n', 'a'); mprintf('a character: %c\n', 'aaa');
With input booleans:
mprintf("\n%%d: %d, %%u: %u, %%o: %o, %%f: %f, %%e: %e, %%s: %s\n" + .. "%%d: %d, %%u: %u, %%o: %o, %%f: %f, %%e: %e, %%s: %s\n", .. %T, %T, %T, %T, %T, %T, %F, %F, %F, %F, %F, %F);
%d: 1, %u: 1, %o: 1, %f: 1.000000, %e: 1.000000e+00, %s: T %d: 0, %u: 0, %o: 0, %f: 0.000000, %e: 0.000000e+00, %s: F
With numbered placeholders:
mprintf("%2$s is %1$d-year old.\n", 32, "Peter");
Peter is 32-year old.
With escaped sequences and UTF-8 extended characters:
--> mprintf("The path T:\\abc does not exist.\n"); The path T:\abc does not exist --> mprintf("abcdefghijk\tαβδ\tεϵ\tζηθικλ\rABCDE\n"); ABCDEfghijk αβδ εϵ ζηθικλ
Ver Também
Histórico
Versão | Descrição |
6.1.0 | Numbered placeholders "%n$.." are supported. |
6.1.1 | Input boolean data can be converted. |
Report an issue | ||
Funções de Saída | Xcos >> |