Saturday 11 November 2017

Printf Format Codes Binary Options


Sprintf sprintf Retorna uma string formatada pelas convenções de printf usuais da função de biblioteca de C sprintf. Veja abaixo para mais detalhes e veja sprintf (3) ou printf (3) em seu sistema para uma explicação dos princípios gerais. O Perl faz sua própria formatação sprintf: ele emula a função sprintf (3). Mas não usá-lo, exceto para números de ponto flutuante, e mesmo assim apenas modificadores padrão são permitidos. Extensões não-padrão em seu sprintf local (3), portanto, não estão disponíveis a partir do Perl. Ao contrário do printf. Sprintf não faz o que você provavelmente quer dizer quando você passa uma matriz como seu primeiro argumento. O array é dado contexto escalar, e em vez de usar o 0 º elemento da matriz como o formato, Perl usará a contagem de elementos na matriz como o formato, que quase nunca é útil. Perls sprintf permite as seguintes conversões universalmente conhecidas: Além disso, o Perl permite as seguintes conversões amplamente suportadas: Finalmente, para a compatibilidade para trás (e nós queremos significar para trás), Perl permite essas conversões desnecessárias mas amplamente suportadas: Note que o número de conversões Expoente na notação científica produzida por e. E. g e G para números com o módulo do expoente inferior a 100 é dependente do sistema: pode ser três ou menos (zero-padded conforme necessário). Em outras palavras, 1,23 vezes dez para o 99 pode ser 1,23e99 ou 1,23e099. Da mesma forma para a e A. o expoente ou os dígitos hexadecimais podem flutuar: especialmente a opção de configuração Perl de dupla longa pode causar surpresas. Entre o e a letra do formato, você pode especificar vários atributos adicionais que controlam a interpretação do formato. Em ordem, estes são: Um índice de parâmetro de formato explícito, como 2. Por padrão sprintf irá formatar o próximo argumento não utilizado na lista, mas isso permite que você tome os argumentos fora de ordem: Quando um espaço e um sinal de mais são dadas Como as bandeiras de uma vez, o espaço é ignorado. Quando a sinalização e uma precisão são dadas na conversão o, a precisão é incrementada se for necessário para o líder 0. Este sinalizador diz Perl para interpretar a seqüência fornecida como um vetor de inteiros, um para cada caractere na seqüência de caracteres. O Perl aplica o formato a cada inteiro, por sua vez, e depois associa as seqüências resultantes com um separador (um ponto, por padrão). Isso pode ser útil para exibir valores ordinais de caracteres em cadeias arbitrárias: Coloque um asterisco antes do v para substituir a seqüência de caracteres a ser usada para separar os números: Você também pode especificar explicitamente o número do argumento a ser usado para a cadeia de junção usando algo como 2v para Exemplo: Argumentos geralmente são formatados para ser tão ampla quanto necessário para exibir o valor especificado. Você pode substituir a largura colocando um número aqui, ou obter a largura do próximo argumento (com) ou a partir de um argumento especificado (por exemplo, com 2): Se uma largura de campo obtida através de é negativo, tem o mesmo efeito que o - Flag: left-justification. Você pode especificar uma precisão (para conversões numéricas) ou uma largura máxima (para conversões de seqüência) especificando a. Seguido por um número. Para formatos de ponto flutuante, exceto g e G. Isso especifica quantos lugares à direita do ponto decimal para mostrar (o padrão é 6). Por exemplo: Para g e G, isso especifica o número máximo de dígitos a serem exibidos, incluindo os anteriores ao ponto decimal e os seguintes: Por conversões de números inteiros, especificar uma precisão implica que a saída do próprio número deve ser zero - padded a essa largura, onde o sinalizador 0 é ignorado: Para conversões de seqüência de caracteres, especificando uma precisão trunca a seqüência de caracteres para ajustar a largura especificada: Você também pode obter a precisão do próximo argumento usando .. ou a partir de um argumento especificado .2): Se uma precisão obtida através de é negativa, ele conta como não tendo nenhuma precisão em tudo. Para conversões numéricas, você pode especificar o tamanho para interpretar o número como usando l. H. V. q. L. ou ll. Para conversões de número inteiro (duox X bi DUO), os números normalmente são assumidos como sendo o tamanho inteiro padrão na sua plataforma (geralmente 32 ou 64 bits), mas você pode substituí-lo para usar um dos tipos padrão C, como suportado Pelo compilador usado para criar o Perl: A partir de 5.14, nenhum destes levanta uma exceção se eles não são suportados em sua plataforma. No entanto, se os avisos estiverem ativados, um aviso da classe de aviso printf é emitido em um sinalizador de conversão não suportado. Se você preferir uma exceção, faça o seguinte: Se você gostaria de saber sobre uma dependência de versão antes de começar a executar o programa, coloque algo como isto no topo: Você pode descobrir se o seu Perl suporta quads via Config: (Efg EFG), os números normalmente são assumidos como sendo o tamanho padrão flutuante em sua plataforma (duplo ou duplo longo), mas você pode forçar o duplo longo com q. L. ou ll se sua plataforma os suportar. Você pode descobrir se o seu Perl suporta duplicações longas via Config: Você pode descobrir se Perl considera longo duplo para ser o tamanho de ponto flutuante padrão para usar em sua plataforma via Config: Também pode ser que duplos e duplos são os mesmos Coisa: O especificador de tamanho V não tem efeito para código Perl, mas é compatível com compatibilidade com código XS. Significa usar o tamanho padrão para um inteiro Perl ou número de ponto flutuante, que é o padrão. Normalmente, sprintf leva o próximo argumento não utilizado como o valor para formatar para cada especificação de formato. Se a especificação de formato usa para exigir argumentos adicionais, eles são consumidos da lista de argumentos na ordem em que aparecem na especificação de formato antes do valor para formatar. Quando um argumento é especificado por um índice explícito, isso não afeta a ordem normal dos argumentos, mesmo quando o índice explicitamente especificado teria sido o próximo argumento. Usa a para a largura, b para a precisão e c como o valor para formatar enquanto: usaria a para a largura e precisão eb como o valor para formatar. Aqui estão alguns exemplos mais ao estar ciente de que ao usar um índice explícito, pode precisar escapar: Se usar localidade (incluindo o uso de localidade 39: notcharacters39) está em vigor e POSIX :: setlocale foi chamado, o caractere usado para o separador decimal em Os números de ponto flutuante formatados são afetados pela localidade LCNUMERIC. Veja perllocale e POSIX.

No comments:

Post a Comment