English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Função do C

Array do C

Ponteiro do C

String do C

Estrutura de linguagem C

Arquivo de linguagem C

Outros C

Manual de referência do C

Uso e exemplo da função printf() da biblioteca C

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

declaração

Aqui está a declaração da função printf().

int printf(const char *format, ...)

parâmetros

  • 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çoSe 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.
0Coloca 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
.numberPara 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
hOs 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).
lOs 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).
LOs 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 %.

valor de retorno

Se for bem-sucedido, retorna o número total de caracteres escritos, caso contrário, retorna um número negativo.

exemplo online

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 

símbolo de formatação

  • %d
  • 㩵n inteiro decimal sem sinal
  • %f número de ponto flutuante
  • %s string
  • %c caractere único
  • %p O valor do ponteiro
  • %e Número Flutuante em Forma Exponencial
  • %x, %X Inteiros Sem Sinal em Hexadecimal
  • %o Inteiros Sem Sinal em Octal
  • %g Os valores de saída são exibidos de acordo com o tipo %e ou %f com a menor comprimento de saída
  • %p Sinalizador de Endereço de Saída
  • %lu 32Inteiros Sem Sinal de Bit
  • %llu 64Inteiros Sem Sinal de Bit

Biblioteca Padrão do C - <stdio.h>