English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca Padrão do C - <stdio.h>
função da biblioteca C int printf(const char *format, ...) envia saída formatada para a saída padrão stdout.
O formato de chamada da função printf() é:
printf("<string formatada>", <tabela de parâmetros>);
Aqui está a declaração da função printf().
int printf(const char *format, ...)
format -- Esta é uma string que contém o texto a ser escrito na saída padrão stdout. Ela pode conter etiquetas de formato incorporadas, que podem ser substituídas pelos valores especificados nos parâmetros adicionais subsequentes e formatadas conforme necessário. As propriedades das etiquetas de formato são %[flags][width][.precision][length]specifier,explicado detalhadamente a seguir:
caractere de formato | significado |
---|---|
d | saída de números inteiros signed em decimal (o sinal não é exibido para números positivos) |
o | saída de números inteiros unsigned em octal (sem o prefixo 0) |
x,X | saída de números inteiros unsigned em hexadecimal (sem o prefixo Ox) |
u | saída de números inteiros unsigned em decimal |
f | saída de números reais de precisão simples e dupla em forma decimal |
e,E | saída de números reais de precisão simples e dupla em forma exponencial |
g,G | saída de números reais de precisão simples e dupla em width mais curto de %f ou %e |
c | caractere de saída único |
s | cadeia de saída |
p | endereço do ponteiro de saída |
lu | 32Inteiros Sem Sinal de Bit |
llu | 64Inteiros Sem Sinal de Bit |
flags(identificadores) | Descrição |
---|---|
- | alinhamento à esquerda dentro do comprimento do campo fornecido, o padrão é alinhamento à direita (ver o subespecificador width). |
+ | forçar a exibição de sinal (+ ou -) antes do resultado (+ ou -),即正数前面会显示 + ponto. Padrão é que apenas números negativos serão exibidos com um - ponto. |
espaço | Se nenhum sinal for escrito, uma espaçamento será inserido antes do valor. |
# | Quando usado com o, x ou X, o valor não zero será exibido com 0, 0x ou 0X antes dele. Quando usado com e, E e f, força a exibição de um ponto decimal, mesmo que não haja números após ele. Padrão é que não será exibido um ponto decimal se não houver números após ele. Quando usado com g ou G, o resultado é o mesmo que usar e ou E, mas os zeros no final não serão removidos. |
0 | Coloca zeros (0) à esquerda do número especificado para preencher o preenchimento, em vez de espaços (ver subindicador width). |
width (largura) | Descrição |
---|---|
(number) | O número mínimo de caracteres a serem exibidos. Se o valor exibido for menor que esse número, o resultado será preenchido com espaços. Se o valor exibido for maior que esse número, o resultado não será truncado. |
* | O comprimento não especificado no string de format, mas será colocado como um valor inteiro adicional antes do parâmetro a ser formatado. |
.precision (precisão) | Descrição |
---|---|
.number | Para os símbolos de notação de inteiro (d, i, o, u, x, X): a precisão especifica o número mínimo de dígitos a serem escritos no número. Se o valor escrito for menor que esse número, o resultado será preenchido com zeros à esquerda. Se o valor escrito for maior que esse número, o resultado não será truncado. A precisão 0 significa que não serão escritos nenhum caractere. Para os símbolos e, E e f: o número de dígitos decimais a serem exibidos após o ponto decimal. Para os símbolos g e G: o número máximo de dígitos significativos a serem exibidos. Para s: o número máximo de caracteres a serem exibidos. Padrão é exibir todos os caracteres até encontrar o caractere nulo no final. Para o tipo c: sem efeito. Quando não for especificada nenhuma precisão, o padrão é 1. Se não for especificado um valor explícito, será assumido como 0. |
.* | A precisão não especificada no string de format, mas será colocada como um valor inteiro adicional antes do parâmetro a ser formatado. |
length (comprimento) | Descrição |
---|---|
h | Os parâmetros são interpretados como inteiro curto ou inteiro curto sem sinal (apenas para os símbolos de notação de inteiro: i, d, o, u, x e X). |
l | Os parâmetros são interpretados como inteiro longo ou inteiro longo sem sinal, aplicáveis aos símbolos de notação de inteiro (i, d, o, u, x e X) e o símbolo c (representando um caractere amplo) e o símbolo s (representando uma string de caractere amplo). |
L | Os parâmetros são interpretados como ponto flutuante de precisão longa (apenas para o símbolo de notação de ponto flutuante: e, E, f, g e G). |
Parâmetros adicionais -- De acordo com diferentes strings de format, a função pode precisar de uma série de parâmetros adicionais, cada um contendo um valor a ser inserido, que substitui cada etiqueta % especificada no parâmetro de format. O número de parâmetros deve ser igual ao número de etiquetas %.
Se for bem-sucedido, retorna o número total de caracteres escritos, caso contrário, retorna um número negativo.
O exemplo a seguir demonstra o uso da função printf().
#include <stdio.h> int main () { int ch; for( ch = 75 ; ch <= 100; ch++ ) { printf("valor ASCII = %d, caractere = %c\n", ch , ch ); } return(0); }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
valor ASCII = 75, caractere = K valor ASCII = 76, caractere = L valor ASCII = 77, caractere = M valor ASCII = 78, caractere = N valor ASCII = 79, caractere = O valor ASCII = 80, caractere = P valor ASCII = 81, caractere = Q valor ASCII = 82, caractere = R valor ASCII = 83, caractere = S valor ASCII = 84, caractere = T valor ASCII = 85, caractere = U valor ASCII = 86, caractere = V valor ASCII = 87, caractere = W valor ASCII = 88, caractere = X valor ASCII = 89, caractere = Y valor ASCII = 90, caractere = Z valor ASCII = 91, caractere = [ valor ASCII = 92, caractere = \ valor ASCII = 93, caractere = ] valor ASCII = 94, caractere = ^ valor ASCII = 95, caractere = _ valor ASCII = 96, caractere = ` valor ASCII = 97, caractere = a valor ASCII = 98, caractere = b valor ASCII = 99, caractere = c valor ASCII = 100, caractere = d
A seguir, apresentamos alguns exemplos de saídas de dados formatados:
#include <stdio.h> int main() { char ch = 'A'; char str[20] = "pt.oldtoolbag.com"; float flt = 10.234; int no = 150; double dbl = 20.123456; printf("caractere = %c \n", ch); printf("string = %s \n" , str); printf("número de ponto flutuante = %f \n", flt); printf("inteiro = %d\n" , no); printf("valor de precisão dupla = %lf \n", dbl); printf("valor octal = %o \n", no); printf("valor hexadecimal = %x \n", no); return 0; }
o resultado da execução é:
caractere A string pt.oldtoolbag.com número de ponto flutuante 10.234000 inteiro 150 valor de precisão dupla 20.123456 valor octal 226 valor hexadecimal 96