Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский
Ajuda do Scilab >> Funções de Saída > printf_conversion

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 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:

    • 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 %..
    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ã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.
    • 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ã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 \

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");
mprintf("abcdefghijk\tαβδ\tεϵ\tζηθικλ\rABCDE\n");
--> 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

  • mprintf — converts, formats, and writes data to the main scilab window
  • mfprintf — converts, formats, and writes data to a file
  • msprintf — converts, formats, and writes data in a string

Histórico

VersãoDescrição
6.1.0 Numbered placeholders "%n$.." are supported.
6.1.1 Input boolean data can be converted.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:35:27 CET 2022