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).