Especificações de conversão de mprintf, msprintf, mfprintf
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 caracteres option
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 , e u , a opção
# não possui efeito. Para a conversão
o , # aumenta a precisão para
forçar o primeiro dígito do resultado a ser 0 (zero). Para as
conversões x e X , um valor
não-nulo possui 0x ou 0X prefixado a ele. Para as conversões
e, E, f, g, e G , o resultado
sempre contém ponto decimal, Mesmo que nenhum dígito o siga. Para as
conversões g e G , 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 , e G ; nenhum aumento de espaço
é realizado. Se ambos os indicadores 0 e
\- (barra) aparecerem, o indicador
0 é ignorado. Para as conversões
d , i , o
u , x , e X , se
uma precisão for especificada, o indicador 0 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:
d
, u
, o
,
x
, ou X
.e
, E
, e
f
.g
e G
.s
.O caractere que indica o tipo de conversão a ser aplicada:
% : | Não realiza conversão. Exibe %..
| ||
---|---|---|---|
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ão x ; as letras ``ABCDEF'' são utilizadas
para a conversão X . 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.
| ||
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.
| ||
g, G : | Converte o value de entrada no estilo dos caracteres
de conversão e , E , ou
f , 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 estilo e
(E , se G é 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 \ |
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 αβδ εϵ ζηθικλ
Version | Description |
6.1.0 | Numbered placeholders "%n$.." are supported. |
6.1.1 | Input boolean data can be converted. |