Leitura e escrita de dados
Você irá aprender
Como usar as funções "printf" e "scanf".
Como usar os formatadores do C.
O que são e como usar Caracteres de escape.
Pré-requisitos
Entrada e saida de dados na prática
Até então temos feito apenas declaração e leitura de variáveis, mas e que tal se agora a gente fizesse escrita desses valores na tela para vermos? Ou melhor ainda, e se a gente fizesse um programa que leia a entrada do teclado realizada pelo usuário? Nesta seção trabalharemos com leitura e escrita de dados, usando como contexto a Linguagem C.
Standard Input and Output (stdio.h)
Você deve se lembrar da primeira aula quando importamos essa biblioteca "stdio.h", esse nome é uma simplificação de Standard Input and Output, que em outras palavras, é a biblioteca padrão de entrada e saída de dados da linguagem C., em geral, todas as linguagens conseguem efetuar essas operações.
A biblioteca "stdio.h" tem várias funções, mas nesta aula iremos focar em duas funções em específico, uma permite escrever dados do programa no terminal (printf) e a outra permite que o usuário digite um valor e o programa irá ler e armazenar em uma variável para nós (scanf).
Escrevendo valores na tela com printf
A função printf ou "print formatted" permite que a gente escreva valores na tela, e os escreva formatadamente, ou seja, se quisermos que o programa escreva um número em decimal, usamos %d, se usarmos %c, o printf irá escrever um caractere na tela, e assim por diante. Não passarei por todos os formatadores, apenas colocarei uma tabela de consulta, e seguiremos com a utilização da função.
%c
um único caractere
%s
uma string
%hi
short (com sinal)
%hu
short (sem sinal)
%Lf
long double
%n
sem impressão
%d
um inteiro decimal (assume a base 10)
%i
um decimal inteiro (detecta a base automaticamente)
%o
um inteiro octal (base 8)
%x
um inteiro hexadecimal (base 16)
%p
um endereço (ou pointer)
%f
um número de ponto flutuante para floats
%g
um número de ponto flutuante simplificado para o menor número de casas decimais que precisa
%u
int decimal sem sinal
%e
um número de ponto flutuante em notação científica
%E
um número de ponto flutuante em notação científica
%%
o símbolo %
fonte: https://www.freecodecamp.org/portuguese/news/especificadores-de-formatacao-em-c/
Suponhamos que queremos imprimir o valor de um número inteiro na tela que criamos.
Para isso invocaremos a função printf, observe o exemplo abaixo:
Vamos explicar o que está acontecendo, primeiramente invocamos a função printf ainda não chegamos na aula de funções, então essa sintaxe parece meio confusa, mas de forma simplificada, quando queremos invocar uma função, colocamos o seu nome exato, seguindo de dois parênteses "()".
Nos parênteses colocamos o que chamamos de os argumentos da função, valores para que a função precisa para gerar um resultado. Neste caso para imprimirmos algo na tela precisamos de dois argumentos, o primeiro é uma sequência de caracteres colocadas em aspas duplas (" "), nas aspas duplas colocamos o nosso formatador, que no nosso caso, como queremos imprimir um número decimal, colocamos %d.
Obs.: Você pode também colocar texto normal acompanhado dos formatadores, por exemplo:
O segundo argumento é a variável de onde o "printf" irá ler para substituir nos formatadores.
Obs.: Argumentos de uma função são separados por vírgula, por exemplo, suponhamos que queremos imprimir um valor "b" junto ao valor "a".
É só colocar outro formatador, e adicionar a variável "b" como argumento da função printf.
A ordem que colocamos os nossos argumentos importa, como colocamos o "a" antes do "b" então primeiro será impresso "a" e depois "b", caso queira imprimir as variáveis na ordem invertida, é só inverter a ordem que coloca as variáveis.
Caracteres de Escape
Além disso, podemos empregar algumas ações especiais na função printf se usarmos caracteres de escape, caracteres que juntos empregam funcionalidades especiais. Por exemplo, podemos usar o "\n" para saltar uma linha, e o "\t" para dar espaço equivalente a uma tabulação, observe o exemplo abaixo.
Agora estamos dando um espaço equivalente a uma linha após ler os valores, além de que entre os valores estamos dando o espaço equivalente a uma tabulação.
Lendo valores com scanf
Por fim, temos o scanf ou scan formatted que como o nome sugere, ele irá ler o teclado da forma que o programador colocar, por exemplo:
Essa sintaxe parece meio maluca, mas vamos destrinchar ela. A primeira parte vocês já devem estar familiarizados, nome da função, parênteses, sequência de caracteres com os formatadores, e por fim a variável, mas e esse sinal "&"?
Novamente não entraremos em detalhes nisso agora, apenas entenda que o ampersand, também chamado de "e comercial" está pegando o endereço da variável "a". Como queremos atualizar o valor de "a" precisamos passar o endereço de memória, para que o valor dentro de "a" seja sobrescrito. Falaremos mais sobre endereço de memória eo ampersand quando falarmos de ponteiros.
Além disso, podemos usar o "scanf" para fazer leituras de forma customizada, por exemplo, podemos ler mais de uma variável na mesma linha:
Agora estamos lendo os valores de "a" e "b" separados por espaço.
Conclusão
Com essa aula, você consegue fazer leitura e escrita pelo teclado usando as funções printf e scanf. Como dito anteriormente, a biblioteca stdio.h possui várias outras funcionalidades, mas não iremos entrar nesse mérito agora. Por enquanto, não se esqueçam de testar esses códigos na máquina de vocês e testar um pouco com outros formatadores, para testar a leitura pelo teclado e a escrita na tela.
Links úteis
Last updated