Mandar um cafézinho para o programador:


Me ajude a transformar café em código!

Recebendo Dados do Teclado - O Objeto cin do C++

Neste tutorial de nosso curso de C++, vamos aprender como receber informações do usuário, pelo teclado, no terminal de comando, utilizando o comando cin >>


Trocando Informações

Para você acessar um site, precisa digitar o endereço da URL e dar enter no navegador.
Para abrir uma foto, você precisa procurar o arquivo no meio das pastas e clicar nela.
Para escutar uma música ou vídeo, também precisa fazer o mesmo.

Quer digitar um texto? Tem que abrir o editor de texto e ir digitando, letra por letra, e apertando os botões, menus e opções do programa, para formatar e deixar tudo bonitinho.

Ou seja, você precisa passar informações para o computador (digitar algo, clicar aqui ou ali, inserir uma URL etc). E baseado no que você faz, ele vai fazer algo.

Se você clica em um botão, ele faz uma coisa.
Se clicar em outro botão, ele faz outra coisa totalmente diferente.
Ele reage de maneira diferente dependendo da informação que o usuário passa.

É isso que vamos começar a aprender a fazer em C++, e o primeiro passo é aprender como receber informações do usuário pelo teclado. Vamos lá?

Como Receber Informações do Usuário: cin >>

Até o momento, todas as informações necessárias para nossos programas funcionarem eram dadas no código, como inicialização de variáveis com seus valores.
Se quiséssemos fazer o programa rodar com outros valores, tínhamos que mudar eles no código, compilar e rodar tudo de novo. Imagina ter que mexer no código de cada programa que você utiliza?

Agora, vamos aprender como fazer o usuário inserir informações e o programa trabalhar em cima desses dados, seja lá quais forem.

Para fazer isso, usamos o objeto cin (vamos aprender na seção de orientação a objetos, o que é um objeto, não se preocupe), que é um objeto de fluxo de entrada (input stream object) seguido do símbolo >> (operador de extração de fluxo - stream extraction operator) e uma variável:

  • cin >> nome_variavel;


O que o C++ vai fazer quando chegar nesse código é simplesmente parar e esperar algo ser digitado no teclado, e quando você apertar ENTER, o valor que você escreveu vai ser armazenado na variável nome_variavel.

Recebendo Números do Usuário com cin >>

Bom, vamos lá.
O programa abaixo pede um inteiro ao usuário, o valor de sua idade, armazena na variável age e em seguida exibe o valor digitado:

#include <iostream>
using namespace std;

int main()
{
    int age;

    cout << "Digite sua idade: ";
    cin >> age;
    cout << "Sua idade é: " << age;

    return 0;
}

O resultado é:
Como receber informações do teclado do usuário


Já o programa abaixo pede dois números ao usuário. Armazena nas variáveis num1 e num2.
Soma esses valores e armazena na variável sum, então exibe o valor da soma:

#include <iostream>
using namespace std;

int main()
{
    float num1, num2, sum;

    cout << "Primeiro numero: ";
    cin >> num1;
    cout << "Segundo numero : ";
    cin >> num2;

    sum = num1 + num2;

    cout << "A soma é: " << sum;

    return 0;
}

Veja o resultado:
Como somar dois números em C++

Podemos também receber múltiplos valores do usuário, basta colocar um ou mais operadores >>, um junto do outro. Vamos refazer o exemplo anterior.
Digite um número, dê um espaço e digite outro número:

#include <iostream>
using namespace std;

int main()
{
    float num1, num2, sum;

    cout << "Digite dois numeros ";
    cin >> num1 >> num2;
    sum = num1+num2;

    cout << "A soma é: " << sum;

    return 0;
}

Importante: vírgula é ponto

No sistema numérico brasileiro, usamos a vírgula para valores 'quebrados'.
Por exemplo: R$ 1,99

Porém, na programação usamos o PONTO .
Em computação: R$ 1.99

Teste os exercícios anteriores digitando números com vírgula e depois ponto


Recebendo textos (strings) do usuário

Uma string (texto, em programação) nada mais é que um grupo de caracteres.
Por isso, para lermos uma string que o usuário digitar, precisamos declarar um grupo de caracteres.

Por exemplo, para armazenar um espaço de 50 caracteres, declaramos:
char nome[50];

Na nossa seção de Strings estudaremos melhor porque a declaração é assim.
O programa abaixo pergunta seu nome e te saúda:

#include <iostream>
using namespace std;

int main()
{
    char name[50];

    cout << "Digite seu nome : ";
    cin >> name;

    cout << "Olá, " << name <<"! Tudo bem?";

    return 0;
}

O resultado é:
Usando CIN para receber texto em C++

Agora teste um nome completo, que tenha espaço em branco.
O que aconteceu? Entenderemos melhor isso na seção de strings de nosso curso.

Recebendo dados Booleanos em C++

Por fim, podemos também receber valores booleanos.

#include <iostream>
using namespace std;

int main()
{
    bool val;

    cout << "Digite algo : ";
    cin >> val;

    cout << "Isso representa o booleano: " << val;

    return 0;
}

Teste inserindo o valor 0. O que apareceu?
Teste inserindo qualquer outro valor inteiro. O que aconteceu?
Digite um caractere. O que retorna?

Exercícios usando cin>>

1. Rode o código abaixo.
Ele deu funcionou corretamente? Qual o problema dele ?

#include <iostream>
using namespace std;

int main()
{
    float num1, num2, sum;
    sum = num1 + num2;
cout << "Primeiro numero: "; cin >> num1; cout << "Segundo numero : "; cin >> num2; cout << "Soma: " << sum; return 0; }


2. Escreva um programa que peça um número e exiba o dobro dele.

3. Faça um programa que recebe o lado de um quadrado e retorna o valor de sua área.

4. Crie um programa em C++ que receba os dois lados de um retângulo e calcule sua área (use apenas um comando cin)

5. Faça um programa que recebe seu nome completo (incluindo espaços) e imprima ele na tela. Estude e aprenda como fazer isso usando o link do site de referência.

Referência de estudo

http://www.cplusplus.com/doc/tutorial/basic_io/

Um comentário:

  1. Olá. Excelente site. Só uma observação: no primeiro parágrafo, vocês escreveram "cin <<" em vez de "cin >>".

    ResponderExcluir

Ajude o C++ Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo