sexta-feira, 8 de novembro de 2019

C++ - Input do utilizador na consola

Já sabemos como fazer output para a consola, a partir do cout, mas como é que se faz input do utilizador para a consola? Isto é, o utilizador escrever informação na consola que vai ser usada no código?

Para fazermos isto, existe o cin, que assim como o cout e o endl, tem sim um significado para o nome:

  • cin - Console In
  • cout - Console Out
  • endl - End Line
cin (Console In), significa então que a consola vai receber informação (in) em vez de dar informação (out). Quando usarmos o cin, o programa vai parar e esperar input do utilizador. Com input quero dizer algum texto ou número, seguido de um Enter. O valor deste input vai ser guardado numa variável já criada.

Escreve-se assim:
cin >> variable;
onde variable é a variável onde queremos guardar a informação.

O tipo de dado da variável deve corresponder ao tipo de input: se o input é um número inteiro, a variável é um int; se é um carácter, é um char; etc.

Cada input é separado por um espaço.
Ou seja, se escrevermos um texto com espaços, apenas vai ser lida a parte até o primeiro espaço, o resto é ignorado, a menos que haja outros pedidos de input.
Por exemplo, escrever
Sou Nyck
na consola e dar Enter, com variable sendo uma string, apenas vai guardar "Sou" na variável.
"Nyck", vai ser ignorado a menos que eu tenha outra variável string a pedir input com o cin, assim:
cin >> variable;
cin >> variable2;
ou
cin >> variable >> variable2;

Assim, "Sou" fica em variable e "Nyck" em variable2.
Neste caso, escrever "Sou" numa linha, dar Enter e escrever "Nyck" numa linha, e dar Enter, vai ter o mesmo resultado.

cin.get()
Também existe o cin.get(), que é outra forma de receber input, mas apenas para o primeiro carácter.
char c;
cin.get(c);

Se eu escrever
Sou
apenas o 'S' vai ser lido (e atribuído a c).

Só escrever
cin.get();
também vai parar o programa até receber um Enter.

Programa exemplo:
#include <iostream>
using namespace std;

int main(){
    string nome;

    cout << "Hey, camarada! Escreve o teu nome: ";
    cin >> nome;
    cout << nome << endl;
}

Agora já temos uma forma de "interagir" com o nosso programa. Podemos introduzir dados os quais vão ser atribuídos a variáveis do programa.

Sem comentários:

Enviar um comentário

Comente de uma forma construtiva...

Mensagem em destaque

Introdução

O design de jogos engloba muitos processos que eu pretendo discutir neste blogue. Eu pretendo abordar tudo desde a música dos jogos, à c...