A função printf
Por que precisamos entender e aprender bem essa função primeiro? Pois usaremos ela diversas vezes no restante do aprendizado de C, e essa função serve para exibir conteúdo no console.
1 A função printf
Nós já usamos ela no exemplo anterior
// Chamada do printf para imprimir string, \n representa quebra de linha
printf("hello, world\n");
Code language: Arduino (arduino)
printf() Função padrão de impressão da biblioteca
printf("conteúdo") envia uma string como parâmetro; imprime todos os caracteres dentro das aspas duplas no console;
Toda instrução deve terminar com ponto e vírgula ;, indicando o fim de uma linha de código. Esquecer o ponto e vírgula causa erro na compilação. Veja a mensagem de erro abaixo:
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:5:29: error: expected ';' before 'return'
printf("hello, world\n")
^
;
return 0;
~~~~~~Code language: PHP (php)
Se quisermos exibir texto com várias linhas, podemos fazer assim:
#include <stdio.h>
main()
{
printf("Texto da primeira linha\n");
printf("Texto da segunda linha\n");
}Code language: PHP (php)
2 String (cadeia de caracteres)
Sequência de caracteres envolvida por aspas duplas em inglês " ", como "hello, world\n"
Nos exemplos anteriores, as strings eram passadas como parâmetro do printf para serem exibidas diretamente no console
Não é possível dividir uma string com quebra de linha na hora de escrever, o código abaixo gera erro de compilação diretamente:
// Exemplo errado: string dividida em duas linhas
printf("hello, world
");
Code language: Arduino (arduino)
Retorno do erro de compilação
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:6:11: warning: missing terminating " character
printf("hello, world
^
hello.c:6:11: error: missing terminating " character
printf("hello, world
^~~~~~~~~~~~~
hello.c:7:4: warning: missing terminating " character
");
^
hello.c:7:4: error: missing terminating " character
");
^~~
hello.c:8:5: error: expected expression before 'return'
return 0;
^~~~~~
hello.c:8:14: error: expected ';' before '}' token
return 0;
^
;
}Code language: PHP (php)
3 Caractere de escape \n quebra de linha
\n é uma marca exclusiva da linguagem C que representa o caractere de quebra de linha;
O printf não quebra linha automaticamente, é preciso adicionar manualmente o \n para o cursor saltar para a linha seguinte;
Sem o \n todo o conteúdo aparece na mesma linha, veja o exemplo abaixo
#include <stdio.h>
int main()
{
// Sem \n: dois textos impressos grudados na mesma linha
printf("hello");
printf("world");
// Com \n: quebra automática após a impressão
printf("\nhello\n");
printf("world\n");
return 0;
}Code language: PHP (php)
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
helloworld
hello
world
C:\cdemo>Code language: CSS (css)
hello e world são impressos juntos na mesma linha. Portanto, se você usar o printf e quiser quebrar linha, lembre-se de adicionar \n. Um \n equivale a apertar a tecla Enter uma vez; dois \n seguidos geram duas quebras de linha, deixando uma linha vazia entre as strings, igual a apertar Enter duas vezes no bloco de notas.
#include <stdio.h>
int main()
{
printf("one\n\n");
printf("two");
return 0;
}Code language: PHP (php)
Resultado da execução
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
one
two
C:\cdemo>Code language: CSS (css)
Impressão concatenada em várias partes: vários printf para montar uma única linha
Veja o exemplo
#include <stdio.h>
int main()
{
printf("hello, ");
printf("world");
printf("\n"); // Quebra de linha apenas no final
}Code language: PHP (php)

Complemento sobre erros comuns
#include <stdio.h>
A linha acima importa o arquivo de cabeçalho via pré-processador, não leva ponto e vírgula no final ;
Para usar a função printf é necessário importar #include <stdio.h>, caso contrário ocorrerá erro