www.samueldiasneto.com: Linguagem C - printf

Pesquisar em todo o site
<<< Voltar Avançar >>>
Se esta página lhe ajudar, considere fazer uma doação

4. printf

4.1 Especificadores de formato

ESPECIFICADOR VALOR
%d inteiro
%o inteiro em formato octal
%x inteiro em formato hexadecimal
%X
%u unsigned int
%ld long int
%f float
%c char
%e float em formato exponencial
%E
%g float. C escolhe melhor  maneira de exibição entre normal e exponencial
%G
%s string
%p endereço de um ponteiro
%n quantos caracteres a função printf exibiu


4.2 Exibindo o sinal de positivo ou negativo antes de um número

Por padrão o sinal de subtração precede um número negativo. Para que o sinal de adição preceda um número positivo inclua um sinal de adição logo após o % no especificador de formato.

Exemplo:

#include <stdio.h>

int main()
  {
    int nr_pos,nr_neg;

    nr_pos = 3;
    nr_neg = -3;

    printf("nr_pos = %+d\n",nr_pos);
    printf("nr_neg = %d\n",nr_neg);

    return(0);
  }

4.3 Formatando valores inteiros

SINTAXE EFEITO
printf (" %5d ",valor); exibe valor com um mínimo de 5 caracteres
printf(" %05d ",valor); exibe valor com um mínimo de 5 caracteres precedendo-o com zeros
#%o exibe um valor octal precedido de 0 (zero)
#%x exibe um valor hexadecimal precedido de 0x
#%X


4.4 Formatando valores float

/* Exibe valor com um mínimo de 5 caracteres
   e com 3 dígitos a direita do ponto decimal */
printf("  %5.3f ", valor);  

4.5 Justificando à esquerda

Por padrão, printf justifica o texto à direita. Para justificar à esquerda coloque um sinal de subtração após o %.

Exemplo:

#include <stdio.h>

int main()
  {
    int valor = 1;

    printf("Justificado a direita  => %5d\n",valor);

    printf("Justificado a esquerda => %-5d\n",valor);

    return(0);
  }

4.6 Quebrando uma string em duas linhas

#include <stdio.h>

int main()
  {
    printf("Esta string é muito grande e por isso foi\
 quebrada em mais de uma linha. Para fazer isso você\
 deve usar o sinal de barra invertida.");

    return(0);
  }

4.7 Caracteres de escape

CARACTERE SIGNIFICADO
\a aviso sonoro
\b retrocesso
\f avanço de formulário
\n nova linha
\r retorno do carro (sem alimentação de linha)
\t tabulação  horizontal
\v tabulação vertical
\\ caractere de barra invertida
\' apóstrofe
\" aspas
\? interrogação
\nnn valor ASCII em octal
\xnnn valor ASCII em hexadecimal


4.8 Verificando quantos caracteres printf exibiu

#include <stdio.h>

int main()
  {
    int nr_caracteres;

    printf("Verificando quantos caracteres printf exibiu.%n",&nr_caracteres);
    printf("\nA frase acima tem %d caracteres.",nr_caracteres);

    return(0);
  }

No exemplo acima, o especificador %n coloca o número de caracteres exibidos por printf na variável &nr_caracteres.


4.9 Usando o controlador ANSI para exibir em cores, limpar a tela e posicionar o cursor

Exibindo em cores

SEQUÊNCIA DE ESCAPE

COR

\033[30m Cor do primeiro plano preta
\033[31m Cor do primeiro plano vermelha
\033[32m Cor do primeiro plano verde
\033[33m Cor do primeiro plano laranja
\033[34m Cor do primeiro plano azul
\033[35m Cor do primeiro plano magenta
\033[36m Cor do primeiro plano ciano
\033[37m Cor do primeiro plano branca
\033[40m Cor do fundo preta
\033[41m Cor do fundo vermelha
\033[42m Cor do fundo verde
\033[43m Cor do  fundo laranja
\033[44m Cor do fundo azul
\033[45m Cor do fundo magenta
\033[46m Cor do fundo ciano
\033[47m Cor do fundo branca

Exemplo :

#include <stdio.h>

int main()
  {
    printf("\033[41m"); /* fundo vermelho */
    printf("\033[37m"); /* primeiro plano branco */
    printf("Exibindo o fundo em vermelho e o primeiro plano em branco.\n");
    return(0);
  }

Posicionando o cursor

SEQUÊNCIA DE ESCAPE

FUNÇÃO

\033[x;yH posiciona o cursor na linha x, coluna y
\033[xA move o cursor x linhas para cima
\033[xB move o cursor x linhas para baixo
\033[yC move o cursor y colunas para a direita
\033[yD move o cursor y colunas para a esquerda
\033[S armazena a posição atual do cursor
\033[U restaura a posição do cursor
\033[2J limpa a tela
\033[K limpa a linha atual


Exemplo:

#include <stdio.h>

int main()
  {
    printf("\033[2J"); /* limpa a tela */
    return(0);
  }

 

Se esta página lhe ajudou, considere fazer uma doação
<<< Voltar Avançar >>>