Lendo a Entrada do Usuário
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 30 de 75.
Até agora, temos criado programas onde escrevemos valores diretamente em nosso código. Mas programas reais muitas vezes precisam interagir com os usuários e obter informações deles.
Em Rust, obter entrada de um usuário é feito usando a biblioteca std::io. Esta biblioteca fornece métodos para ler diferentes tipos de entrada, como inteiros, números de ponto flutuante e strings.
Para usar a biblioteca std::io, você primeiro precisa importá-la:
use std::io;Para ler a entrada de um usuário, precisamos de duas linhas de código:
let mut my_var = String::new();
// Cria uma string vazia para armazenar a entrada
io::stdin().read_line(&mut my_var).unwrap();
// Lê a entradaIsso armazenará o valor de entrada na variável my_var como um tipo string.
Se você quiser obter um número, precisará de um passo extra para converter a entrada de texto em um número:
let age: i32 = input.trim().parse().unwrap();O .trim() é necessário porque quando os usuários pressionam Enter, um caractere de nova linha é adicionado à sua entrada. Por exemplo, se alguém digitar "25" e pressionar Enter, a entrada real é "25\n". O .trim() remove esses caracteres de espaço em branco extras (espaços, novas linhas, etc.) tanto do início quanto do fim da entrada.
Não se preocupe muito com o unwrap() por enquanto - aprenderemos sobre isso mais tarde. Apenas saiba que ele nos ajuda a lidar com erros potenciais de uma forma simples (embora não seja a ideal).
Desafio
InicianteEscreva um programa que receba a entrada do usuário (seu nome) e, em seguida, exiba Hello, seguido pelo nome inserido pelo usuário e um ponto de exclamação.
Por exemplo, se o usuário inserir Bob, a saída esperada é Hello, Bob!.
Você precisará:
- Criar um objeto
Stringpara ler a entrada. - Solicitar ao usuário que insira seu nome: "
Enter your name:" - Ler o nome do usuário usando o método
std::ioapropriado. - Imprimir
Hello,seguido pelo nome armazenado e um ponto de exclamação!ao final.
Folha de consulta
Para obter entrada do usuário em Rust, importe a biblioteca std::io:
use std::io;Para ler uma entrada de string de um usuário:
let mut my_var = String::new();
io::stdin().read_line(&mut my_var).unwrap();Para converter uma entrada de string em um número:
let age: i32 = input.trim().parse().unwrap();O método .trim() remove caracteres de espaço em branco (incluindo quebras de linha ao pressionar Enter) da entrada.
Experimente você mesmo
use std::io;
fn main() {
// Cria um objeto String
let mut name = String::new();
// Solicita ao usuário que insira seu nome (use println)
// Lê o nome do usuário
// Imprime a mensagem de saudação
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Entrada e Saída Básica
Exibindo no ConsoleLendo a Entrada do UsuárioRevisão - Até 120Revisão - Verdadeiro ou Falso5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 33Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaInferência de TipoRecapitulação - Inicializar VariáveisConversão de Tipo9Laços
For sobre SériesLaço WhileBreakContinueLaços AninhadosRótulos de LoopLoop InfinitoRecapitulação - Entrada Dinâmica