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).
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 -).
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.
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:
O número mínimo de dígitos a aparecerem nas conversões
d
, u
, o
,
x
, ou X
O número de dígitos a aparecerem após o ponto decimal nas
conversões e
, E
, e
f
O número máximo de dígitos significativos para as conversões
g
e G
O número máximo de caracteres a serem impressos a partir de um
string em uma convesão s
O caractere que indica o tipo de conversão a ser aplicada:
Não realiza conversão. Exibe %.
Aceita um valor inteiro e o converte para notação decimal com sinal. 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.
Aceita um valor inteiro e o converte para a notação decimal sem sinal. 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.
Aceita um valor inteiro e o converte para a sua notação octal sem sinal. 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.
Aceita um valor inteiro e o converte para a sua notação
hexadecimal sem sinal. 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.
Aceita um valor float ou double e o converte 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.
Aceita um real e o converte 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.
Aceita um real e o converte 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.
Aceita e exibe um valor inteiro convertido em um caractere.
Aceita um valor string 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.
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).