Sunday 8 April 2018

C printf format codes binary options


Printf e scanf número de códigos com até seis dígitos de precisão, notação científica Nota de rodapé: Em printf (), as promoções de tipo de expressão são esperadas - em uma expressão, char e short são convertidos em int e float é convertido em duplo. Assim c corresponde realmente a um parâmetro de tipo int e f e g correspondem realmente a parâmetros do tipo double. Assim, em printf () não há diferença entre f e lf, ou entre g e lg. No entanto, em scanf () o que é passado é um ponteiro para a variável para que nenhum tipo de promoções ocorram ou são esperados. Assim f e lf são bastante diferentes em scanf, mas o mesmo em printf. Pessoalmente, eu costumava usar lg rotineiramente para duplos em printf e scanf, mas isso está fora de favor nos dias de hoje e de fato gcc lhe dará uma mensagem de aviso para usar lg em printf. O procedimento usual nestes dias é usar g para o dobro em printf e lg para duplo em scanf. Não importa o que você usa para printf porque a função de biblioteca printf trata-los como sinônimos, mas é crucial para obtê-lo direito para scanf. Printf modificadores de formato Modificadores aparecem entre a e a letra-chave. Um número é uma largura de campo. E um número é uma precisão Exemplo: printf (6.3f, 2.8) rende 2.800 (com um espaço antes do 2) Note que esse 6 inclui as 3 casas decimais eo 1. - 6 caracteres no total. Assim, 6-3-1 2 caracteres à esquerda do ponto decimal. 0 (o dígito zero) significa pad com zeros à largura do campo (usualmente usado apenas com inteiros) l (a letra) significa longo, e. Ld para formatar um int longo em decimal Exemplo de 0: 2. 3 (um espaço entre. E 3) Em 02d, o 0 não faz parte da largura do campo. É um caractere de modificador. E quando você tem uma largura de campo, você deve escrevê-la de tal forma que ela não comece com um zero (e então você pode antecipar um zero como um caractere de modificador se você quiser isso).C library function - printf () D, i, o, u, x, X) menos precisão especifica o número mínimo de dígitos a serem gravados. Se o valor a ser escrito for menor que este número, o resultado será preenchido com zeros à esquerda. O valor não é truncado mesmo se o resultado for mais longo. Uma precisão de 0 significa que nenhum caractere é escrito para o valor 0. Para os especificadores e, E e f menos este é o número de dígitos a serem impressos após o ponto decimal. Para especificadores g e G minus Este é o número máximo de dígitos significativos a serem impressos. Para s menos este é o número máximo de caracteres a serem impressos. Por padrão, todos os caracteres são impressos até que o caractere nulo final seja encontrado. Para c tipo menos ele não tem efeito. Quando nenhuma precisão é especificada, o padrão é 1. Se o período é especificado sem um valor explícito para precisão, 0 é assumido. A precisão não é especificada na seqüência de caracteres de formato, mas como um argumento de valor inteiro adicional que precede o argumento que deve ser formatado. O argumento é interpretado como um int curto ou unsigned short int (somente se aplica a integer especificadores: i, d, o, u, x e X). O argumento é interpretado como um int long ou unsigned long int para integer especificadores (i, d, o, u, x e X), e como um caractere largo ou cadeia de caracteres larga para os especificadores c e s. O argumento é interpretado como um duplo longo (aplica-se apenas a especificadores de ponto flutuante: e, E, f, g e G). Argumentos adicionais menos Dependendo da string de formato, a função pode esperar uma seqüência de argumentos adicionais, cada um contendo um valor a ser inserido em vez de cada tag especificado no parâmetro de formato (se houver). Deve haver o mesmo número de argumentos como o número de - tags que esperam um valor. Valor de retorno Se bem-sucedido, o número total de caracteres escritos é retornado. Em caso de falha, um número negativo é retornado. O exemplo a seguir mostra o uso da função printf (). Vamos compilar e executar o programa acima para produzir o resultado seguinte minusPrint dados formatados para stdout Escreve a seqüência de caracteres C apontado por formato para a saída padrão (stdout). Se o formato incluir especificadores de formato (subseqüências começando com), os argumentos adicionais seguintes formato são formatados e inseridos na seqüência resultante substituindo seus respectivos especificadores. Parâmetros format C string que contém o texto a ser gravado em stdout. Ele pode opcionalmente conter especificadores de formato incorporado que são substituídos pelos valores especificados em argumentos adicionais subseqüentes e formatados conforme solicitado. Onde o caracter especificador no final é o componente mais significativo, uma vez que define o tipo ea interpretação de seu argumento correspondente: Número decimal assinado Número inteiro decimal não assinado Inteiro hexadecimal não assinado Inteiro hexadecimal não assinado (maiúscula) Decimal ponto flutuante, minúsculas Decimal ponto flutuante, Maiúscula Notação científica (mantissa / expoente), minúsculas Notação científica (mantissa / exponente), maiúscula Use a representação mais curta: e ou f Use a representação mais curta: E ou F Ponto flutuante hexadecimal, minúscula Ponto flutuante hexadecimal, . O argumento correspondente deve ser um ponteiro para um int assinado. O número de caracteres escritos até agora é armazenado no local apontado. A seguido por outro personagem irá escrever um único para o fluxo. O especificador de formato também pode conter sub-especificadores: flags. largura ..precisão e modificadores (nessa ordem), que são opcionais e seguem estas especificações: Justificação à esquerda dentro da largura do campo dado A justificação à direita é o padrão (ver sub-especificador de largura). Forças para preceder o resultado com um sinal de mais ou menos (ou -) mesmo para números positivos. Por padrão, apenas os números negativos são precedidos de um -. Se nenhum sinal vai ser escrito, um espaço em branco é inserido antes do valor. Usado com o. X ou X o valor é precedido com 0. 0x ou 0X respectivamente para valores diferentes de zero. Usado com a. UMA . E. E. F. F. G ou G força a saída escrita a conter um ponto decimal mesmo se não mais dígitos seguir. Por padrão, se nenhum dígito seguir, nenhum ponto decimal é gravado. Esquerda-pads o número com zeros (0) em vez de espaços quando preenchimento é especificado (ver sub-especificador de largura). Para especificadores de números inteiros (d, i, u, x, X): precision especifica o número mínimo de dígitos a serem gravados. Se o valor a ser escrito for menor que este número, o resultado será preenchido com zeros à esquerda. O valor não é truncado mesmo se o resultado for mais longo. Uma precisão de 0 significa que nenhum caractere é escrito para o valor 0. Para um . UMA . E. E. F e especificadores F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, este é 6). Para especificadores g e G: Este é o número máximo de dígitos significativos a serem impressos. Para s. Este é o número máximo de caracteres a serem impressos. Por padrão, todos os caracteres são impressos até que o caractere nulo final seja encontrado. Se o período é especificado sem um valor explícito para precisão. 0 é assumido. A precisão não é especificada na seqüência de caracteres de formato, mas como um argumento de valor inteiro adicional que precede o argumento que deve ser formatado. O sub-especificador de comprimento modifica o comprimento do tipo de dados. Este é um gráfico mostrando os tipos usados ​​para interpretar os argumentos correspondentes com e sem especificador de comprimento (se um tipo diferente é usado, a promoção de tipo apropriado ou conversão é realizada, se permitido): Nota sobre o especificador c: leva um int ( Ou wintt) como argumento, mas executa a conversão adequada para um valor char (ou um wchart) antes de formatá-lo para saída. Nota: As linhas amarelas indicam especificadores e sub-especificadores introduzidos por C99. Consulte ltcinttypesgt para os especificadores para tipos estendidos. . (Argumentos adicionais) Dependendo da seqüência de caracteres de formato, a função pode esperar uma seqüência de argumentos adicionais, cada um contendo um valor para ser usado para substituir um especificador de formato na seqüência de caracteres de formato (ou um ponteiro para um local de armazenamento, para n). Deve haver pelo menos tantos desses argumentos quanto o número de valores especificados nos especificadores de formato. Argumentos adicionais são ignorados pela função. Valor de retorno Em caso de sucesso, o número total de caracteres escritos é retornado. Se ocorrer um erro de escrita, o indicador de erro (ferror) é definido e um número negativo é retornado. Se ocorrer um erro de codificação de caracteres multibyte ao escrever caracteres largos, errno é definido como EILSEQ e um número negativo é retornado. Compatibilidade Implementações de biblioteca particulares podem suportar especificadores adicionais e sub-especificadores. Os listados aqui são suportados pelos mais recentes padrões C e C (ambos publicados em 2017), mas aqueles em amarelo foram introduzidos em C99 (apenas necessário para implementações C desde C11) e podem não ser suportados por bibliotecas que cumprem padrões mais antigos. Escreve string para stdout (função) scanf Ler dados formatados a partir de stdin (função) fprintf Escrever dados formatados para fluxo (função) fwrite Escrever bloco de dados para fluxo (função) funções: macro constantes:

No comments:

Post a Comment