Entrada e Saída de Dados
Teoria
Introdução
E aí, tudo beleza?
Hoje vamos ver como escrever um programa que possa receber dados passados pelo usuário. Além disso, vamos nos aprofundar um pouco mais na saída de dados por meio da função cout.
Bora lá!
Primeiros passos
Imagina a seguinte situação: você foi contratado para fazer um programa que salva os dados de usuários de um determinado serviço, um streaming por exemplo.
Para que isso seja possível, a pessoa que vai abrir o programa precisa passar uma série de dados para o computador como nome, idade, dados do cartão e outros.
Após isso, esses dados precisam ser salvos em variáveis, de forma a poder trabalhar com eles ao longo do programa.
Vamos ver um exemplo de como faríamos esse programa no C++:
Nesse programa, inicialmente, incluímos a biblioteca iostream, pois é ela que nos permitirá trabalhar com a saída e a entrada de dados. Após isso, por meio do comando using namespace std, chamamos uma função específica da biblioteca iostream, de forma a facilitar o seu uso.
Já dentro da função main, declaramos uma variável de nome e tipo , para que ela possa armazenar o valor da idade que o usuário irá digitar.
Por meio do comando cout, enviamos a mensagem que queremos passar para o usuário. Perceba que ambos, o, e as setas indicam que o comando é uma saída de dados.
Em seguida, o que fizemos foi armazenar o valor que o digitado por meio do comando . Nesse caso, o comando cin, indica que está acontecendo uma entrada de dados e faz com que o programa espere até o usuário terminar de digitar e apertar o “Enter”. As setas em apontam para onde esse dado será armazenado que, nesse caso, foi na variável .
O próximo passo foi uma forma de confirmar o dado recebido, informando o usuário por meio de uma mensagem impressa. Nela, escrevemos a mensagem entre aspas, exceto quando vamos printar a variável, nesse momento, usamos apenas o nome da variável, sem as aspas.
Vamos ver o resultado final:
Agora, vamos ver mais a fundo o que é cada expressão e como usá-las.
Saída de Dados (cout)
A saída de dados ocorre por meio do cout. Como já foi visto, a sintaxe para imprimirmos alguma mensagem é:
Onde cout indica o início e endl indica o final com uma quebra de linha.
Quando vamos printar o valor que está dentro de uma variável, no entanto, não utilizamos as aspas:
Caso usássemos, o programa iria printar a palavra que representa o nome da variável, nesse caso , e não o valor que foi armazenado nela.
Existem alguns comandos que podem nos ajudar dentro da função cout. Eles são:
- – É utilizado para indicar uma quebra de linha. Semelhante ao endl, mas é utilizado dentro da mensagem que está entre aspas.
- – Esse comando, de forma semelhante ao , deve vir entre aspas. Ele é utilizado para dar um espaçamento na horizontal, servindo como uma forma de melhor organizarmos o nosso texto.
Nesse caso, para as 4 primeiras linhas de texto, usamos o para quebrar a linha, e no final, printamos o . Para isso, usamos duas barras , pois, ao utilizar uma barra antes de um comando especial como o , fazemos com que ele perca a sua função, e o compilador o entenda como apenas um texto normal.
Dessa forma, ficamos com a saída:
Aqui, utilizamos o para organizarmos uma lista de compras de forma semelhando a uma tabela, onde na primeira coluna tínhamos o que iríamos comprar e na segunda coluna a quantidade que iríamos comprar.
Dessa forma, a saída fica:
Entrada de dados (cin)
O comando cin, serve para que o usuário passe alguma informação para o programa. Sempre que isso ocorre, o dado que é passado pelo usuário deve ser armazenado dentro de uma variável. A sintaxe para esse processo é:
Quando esse comando é executado, o programa fica aguardando a entrada de dados, ou seja, o usuário do programa deve digitar o que será guardado dentro da variável.
Atenção: é extremamente importante que o dado passado para o programa seja coerente com o tipo de variável escolhida para armazená-lo. Ou seja, se a variável for um , é importante que o dado passado seja um inteiro, se ela for um , o dado deve ser um numero real, e assim segue.
Vamos ver um exemplo:
Nesse caso, usamos o cin para armazenar o ano de nascimento do usuário dentro da variável . Como saída, temos:
O programa ficará assim até que seja digitado um valor para ser armazenado em “ano”. Após o usuário digitar e apertar a tecla “Enter”, temos:
Logo, percebemos que o programa armazenou o valor digitado com sucesso.
Também é possível atribuirmos valores a mais de uma variável.
O comando:
É equivalente a
Ou seja, o usuário passará dois dados ao programa, o primeiro será armazenado em var1 e o segundo será armazenado em var2. No segundo caso mostrado, é possível fazer isso em apenas uma linha de comando, deixando o seu programa mais “enxuto”.
Com isso, já sabemos como usar a biblioteca iostream para passar dados para um programa por meio do comando cin e para receber saídas desse mesmo programa usando cout.
Então, que tal irmos para algumas questões de fixação? 😉
Saída de Dados (cout)
Entrada de dados (cin)
Exercícios Resolvidos
Exercício Resolvido #1
Elaboração Própria
Diga quais funções são usadas em C++ para que o programa possa fazer a leitura de dados passados pelo usuário e possa imprimir alguma mensagem. Explique, resumidamente, como elas funcionam.
Passo 1
Para que uma mensagem seja imprimida na tela, é utilizada a função cout, pertencente à biblioteca iostream. Com ela, são imprimidos os dados definidos no código, tanto uma mensagem pré-definida quanto valores armazenados em variáveis, para que o usuário possa visualizá-los.
Como da para ver no exemplo abaixo, nós incluímos a biblioteca e usamos o cout para imprimir a mensagem Entre com um numero:
Passo 2
Para permitir que o usuário passe algum dado para o programa, é utilizada a função cin, que também é da biblioteca iostream. Por meio dela, é feita uma leitura dos dados passados pelo usuário e, em seguida, eles são atribuídos a uma variável que será trabalhada dentro do programa.
Continuando o nosso exemplo, podemos passar o valor de um número digitado pelo usuário para a variável num:
Resposta
A função cin para receber dados e a função cout para fazer a impressão.
Exemplo:
Exercício Resolvido #2
Elaboração Própria
Durante a execução do seguinte programa:
O usuário passou dois valores numéricos: e , nessa ordem. Sabendo disso, qual foi a impressão que o programa fez?
Passo 1
Na linha 10, o programa lê o que os dados que o usuário passou e atribui cada valor numérico às variáveis e na ordem em que elas são escritas no comando cout. Com isso, o valor é atribuído à variável e o valor é atribuído à variável .
Dessa forma, temos:
De acordo com o comando da linha 14, o programa irá imprimir o valor armazenado na variável que, nesse caso, é .
Resposta
O programa irá imprimir .
Exercício Resolvido #3
Elaboração Própria
Faça um programa que receba um caractere digitado e o armazene numa variável do tipo char. Em seguida, imprima a mensagem “O caractere digitado foi “ e imprima o caractere.
Não deixe de imprimir uma mensagem inicial indicando que o usuário deve digitar um caractere.
Passo 1
Vamos começar incluindo a biblioteca iostream (linha 01) para fazer a leitura dos dados passados e, em seguida, inicializar a função main. Dentro da função main, vamos declarar a variável que vai receber o caractere digitado (linha 08). Escrevendo char antes da variável, a gente define o tipo dela.
Em seguida vamos imprimir a mensagem para que ele digite o caractere (linha 10) e pra imprimir usamos a função cout. Então, com a função cin, vamos armazenar esse valor na variável a (linha 11).
Passo 2
Agora, vamos imprimir a mensagem do enunciado (linha 13) e, em seguida, vamos imprimir o valor armazenado em a (linha 14).
Resposta
Exercício Resolvido #4
Elaboração Própria
Faça um programa que receba dois números inteiros do usuário e imprima a soma a deles.
Lembre de colocar mensagens que deixem claro quando o usuário deve digitar cada número e uma mensagem que explique o que está sendo impresso no final do programa.
Passo 1
Vamos começar incluindo a biblioteca iostream (linha 01) e, em seguida, inicializar a função main. Então vamos declarar as variáveis que vão receber os números digitados e a variável que vai armazenar a soma deles (linha 08). Como todas as variáveis são números inteiros, escrevemos int ao declará-las.
Após isso, vamos imprimir uma mensagem pedindo que o usuário digite o primeiro número (linha 10), com a função cout. Em seguida, vamos fazer a leitura desse número armazená-lo na variável num1, com o comando cin (linha 11).
Vamos fazer o mesmo processo para o num2 (linhas 13 e 14).
Passo 2
Agora vamos calcular e armazenar o valor da soma desses números na variável soma (linha 16).
Pra terminar, precisamos apenas imprimir essa soma. E fazemos isso, com o comando cout, nas linhas 18 a 20. Como não colocamos o comando que pula linha (endl) depois da mensagem “A soma desses números e ”, tudo vai ser impresso na mesma linha.
Resposta
Exercício Resolvido #5
Elaboração Própria
Faça um programa que receba a idade do usuário e o ano atual e print uma mensagem informando o ano de nascimento dele para o caso em que ele já fez aniversário no ano atual e para o caso em que ele ainda não fez aniversário.
Deixe claro para o usuário o momento no qual ele deve digitar a sua idade e o ano atual.
Passo 1
Inicialmente, vamos incluir a biblioteca iostream e inicializar a função main.
Para receber as informações, precisamos de duas variáveis: uma para a idade e uma para o ano atual. Vamos chamá-las de idade e ano_atual e, como são números inteiros, escrevemos int na hora de declarar (linha 08 e 09).
Passo 2
Após isso, vamos printar uma mensagem para que o usuário do programa saiba que deve digitar a sua idade (linha 11) e dar o comando para que o valor digitado seja armazenado na variável idade (linha 12).
Em seguida, vamos fazer a mesma coisa para o ano_atual (linhas 14 e 15).
Passo 3
Agora vamos criar as variáveis para receber o valor do ano de nascimento do usuário e vamos chamar de aniv, pro caso em que ele já fez aniversário, e n_aniv, para o caso em que ele ainda não fez aniversário.
Se ele já fez aniversário, o seu ano de nascimento é dado por:
aniv = ano_atual – idade;
Se ele ainda não fez aniversário, o ano de nascimento será:
n_aniv = ano_atual – idade – 1;
Dessa vez, já atribuímos os valores das variáveis, ao mesmo tempo que as declaramos (linhas 17 e 18). É uma outra forma de fazer, mais direta ao ponto, que funciona igual. O valor da variável é o que aparece entre chaves { }, por isso colocamos as expressões que acabamos de definir.
Após fazermos as variáveis receberem esses valores, só precisamos printar esses valores com uma mensagem (linhas 20 a 25). O comando endl, que aparece nas linhas 22 e 25, finaliza uma linha. Então, o que vem depois disso, vai ser impresso em outra linha. Nesse caso, o resultado ocupou duas linhas.
Resposta
Exercício Resolvido #6
Elaboração Própria
Faça um programa que, ao iniciar, pede para usuário digitar o seu ID. Após isso, o programa deve imprimir uma mensagem de boas-vindas com o valor digitado.
Exemplo:
Digite o seu ID: 4159
Seja bem-vindo usuario 4159.
Passo 1
Eai, tudo beleza?
Nessa questão, vamos fazer uma interação com o usuário do nosso programa ao pedir para que ele digite o seu ID e, logo em seguida, imprimimos uma mensagem de boas vindas com o valor passado por ele.
Vamos iniciar o nosso código incluindo a biblioteca e iniciando a nossa função . Para salvarmos o valor passado pelo usuário, precisamos de uma variável. Como se trata de um ID, vamos declarar essa variável como do tipo .
Passo 2
Em seguida, vamos utilizar o imprimir uma mensagem indicando que o usuário deve digitar o seu ID, assim como no exemplo do enunciado. E seguida vamos salvar o valor passado para a variável .
Passo 3
Para finalizarmos, vamos imprimir a mensagem de boas-vindas, juntamente o ID informado pelo usuário.
Resposta
Exercício Resolvido #7
Elaboração Própria
Tal código abaixo da um erro de compilação:
Explique o motivo desse erro.
Passo 1
Eai, tudo beleza?
Vamos inicialmente entender o que esse código deveria executar.
Dentro da função , na linha , são declaradas duas variáveis do tipo inteiro: e . Em seguida, na linha , é impresso na tela uma mensagem para que o usuário digite o valor de , e, logo após isso, é enviado o valor informado pelo usuário para a variável . O mesmo processo é realizado com a variável nas linhas e .
Por fim, no próximo comando, é impresso na tela uma mensagem dizendo “O produto de x com y eh: “, e o valor do produto. Com isso, o código é encerrado.
Passo 2
O problema desse código, está no fato dele utilizar os comandos e da biblioteca , mas não ter adicionado o no cabeçalho do programa. Com isso ele não pode utilizar diretamente o e o , seria necessário o uso de e .
Resposta
Ei, a resposta está no passo a passo :)
Exercício Resolvido #8
Elaboração Própria
O código abaixo deveria imprimir na tela a clássica mensagem , iniciando e finalizando a mensagem com uma quebra de linha. No entanto, existem uma série de erros que impedem que o programa seja executado da forma correta. Corrija esses problemas.
Passo 1
Eai, tudo beleza?
Nessa questão, nós devemos analisar o código do enunciado e o corrigir. Para isso, vamos analisar cada trecho do código.
Inicialmente, temos a inclusão da biblioteca . No entanto, perceba que no código que nos foi dado, não foi utilizado o ponto e vírgula ao final da inclusão do cabeçalho . O que está errado!!
Portanto, vamos fazer a primeira correção nesse código:
Passo 2
Vamos analisar agora a nossa função . Dentro dela, há o comando para imprimir a mensagem , no entanto, na linha , perceba que está escrito , com apenas 1 sinal de . Esse é mais um erro, pois vimos que o correto é .
Na mesma linha, é possível perceber que há um ao fim das aspas. O enunciado nos disse que esse programa deveria encerrar a impressão dessa frase com uma quebra de linha, porém, essa quebra não é feita utilizando . Como vimos, para fazer uma quebra de linha, se utiliza .
Corrigindo esses dois erros, ficamos com: