Leitura e escrita de dados
Last updated
Last updated
Como usar as funções "printf" e "scanf".
Como usar os formatadores do C.
O que são e como usar Caracteres de escape.
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.
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).
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.
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.
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.
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.