A função printf

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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *