quinta-feira, 23 de junho de 2016

03 - Função printf() e alguns caracteres especiais

A função printf() e alguns caracteres especiais

Você aprendeu no artigo passado como criar seu primeiro programa na fantástica linguagem de programação C: um aplicativo que exibia uma mensagem na tela.

Pra isso, você usou a função printf. Porém, essa função é cheia de recursos, e vamos ensinar mais algumas agora.
Vamos mostrar uma porção de códigos, mas não vamos mostrar o resultado. Para você aprender a programar nunca fique copiando e colando, vá lá e digite os códigos.

Só assim você aprenderá.

Caracteres Especiais

Você viu que para exibirmos uma mensagem, basta escrever o texto entre aspas duplas "".

Porém, como vamos ver nesse tutorial de C, não bastante somente escrever as coisas entre aspas duplas, e que tudo vai sair exatamente como você planejou.
Teste, por exemplo, exibir uma mensagem com os seguintes caractere: " ou \


O código ficaria assim:
#include <stdio.h>
 
int main(void)
{
    printf("Aspas duplas "\n");
    printf("Barra: \");
    return 0;
}
Como explicamos antes, o que aparece no console (telinha preta) é o que está entre aspas: " isso aqui aparece".
Se você colocar aspas duplas você terá aspas duplas, o C vai interpretar que é pra ser exibido o que estiver entre a primeira e a segunda aspas, que nosso caso é o texto "Aspas duplas :". E a terceira aspas?
A terceira não era pra estar lá, o \n é um erro, por isso gera um erro na hora de compilar.

Por que o C não exibe esses caracteres? 

Porque o nosso conceito de caracteres é diferente do conceito que os computadores tem.
Para nós, o caractere " é aspas duplas. Para o C, é um caractere que delimita o que vai aparecer no console.

Ou seja, pro C, esses caracteres não fazem parte do alfabeto, não estão lá por motivos de leitura para humanos, são símbolos que representam outras coisas.

Então, como exibir esses caracteres especiais na forma de texto?
Usando o caractere de \
Quando queremos que o caractere de aspas duplas apareça no console, colocamos o \ antes: \"
O C vai interpretar que, com esse símbolo \ antes, o caractere " deve ser exibido na tela.

Como exibir o caractere \ 

Coloque uma barra antes dele também.
Sim, vai ficar: \\
Quando o C encontra essas duas barras, ele entende que deve se exibir o caractere \

Nosso programa fica assim:
#include <stdio.h>
 
int main(void)
{
    printf("Aspas duplas \" \n");
    printf("Barra: \\");
    return 0;
}
Em suma, o que esse caractere faz é 'avisar' ao C que o próximo caractere, que vem logo após o \ terá um significado diferente.
Note que já usamos isso antes, para imprimir uma quebra de linha: \n
Você sabe que ao escrever \n o C não irá imprimir a barra nem o n, ele vai imprimir uma quebra de linha, ou um 'Enter'.

Sinais sonoros e outros caracteres especiais

Carriage return: \r

Esse caractere especial faz com que o cursor se mova para o início da linha:
#include <stdio.h>
 
int main(void)
{
    printf("Carriage return: \r");
    getchar();
    return 0;
}
O comando getchar() faz com que o programa espere que o usuário digite alguma tecla.
Assim o programa só termina se você digitar algo. Usamos isso para motrar que o carriage return faz com o cursor vá para o início da linha.

Tabulação horizontal (TAB): \t

#include <stdio.h>
 
int main(void)
{
    printf("Antes do \\t \t Depois do \\t");
    return 0;
}

Sons: \7 e \a

Os leitores mais antigos, que jogaram video-games como o NES ou Atari certamente vão se lembrar desse aviso sonoro, que também era utilizado em sistemas operacionais antigos e jogos de computador feitos no terminal:
#include <stdio.h>
 
int main(void)
{
    printf("\7 \a");
    return 0;
}

Nenhum comentário:

Postar um comentário