| 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 |
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); }
| 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 |
printf(" %5.3f ", valor); /* Exibe valor com um mínimo de 5 caracteres e com 3 dígitos a direita do ponto decimal */
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); }
#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); }
| 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 |
#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.
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);
}