Leer entrada del usuario
Parte de la sección Fundamentos del Journey de Rust de Coddy. Lección 30 de 75.
Hasta ahora, hemos estado creando programas en los que escribimos valores directamente en nuestro código. Pero los programas reales a menudo necesitan interactuar con los usuarios y obtener información de ellos.
En Rust, obtener la entrada de un usuario se hace mediante la biblioteca std::io. Esta biblioteca proporciona métodos para leer distintos tipos de entrada, como enteros, números de coma flotante y cadenas.
Para usar la biblioteca std::io, primero debes importarla:
use std::io;Para leer la entrada de un usuario, necesitamos dos líneas de código:
let mut my_var = String::new();
// Crea una cadena vacía para almacenar la entrada
io::stdin().read_line(&mut my_var).unwrap();
// Lee la entradaEsto almacenará el valor de entrada en la variable my_var como un tipo de cadena.
Si quieres obtener un número, necesitas un paso adicional para convertir la entrada de texto en un número:
let age: i32 = input.trim().parse().unwrap();Se necesita .trim() porque, cuando los usuarios presionan Enter, se añade un carácter de nueva línea a su entrada. Por ejemplo, si alguien escribe "25" y presiona Enter, la entrada real es "25\n". .trim() elimina estos caracteres de espacio en blanco adicionales (espacios, saltos de línea, etc.) del principio y del final de la entrada.
No te preocupes demasiado por unwrap() por ahora; aprenderemos sobre ello más adelante. Solo debes saber que nos ayuda a gestionar posibles errores de una manera sencilla (aunque no ideal).
Desafío
PrincipianteEscribe un programa que obtenga la entrada del usuario (su nombre) y después muestre Hello, seguido del nombre introducido por el usuario y un signo de exclamación.
Por ejemplo, si el usuario introduce Bob, la salida esperada es Hello, Bob!.
Necesitarás:
- Crear un objeto
Stringpara leer la entrada. - Pedir al usuario que introduzca su nombre: "
Enter your name:" - Leer el nombre del usuario utilizando el método apropiado de
std::io. - Imprimir
Hello,seguido del nombre almacenado y un signo de exclamación!al final.
Pruébalo tú mismo
use std::io;
fn main() {
// Crea un objeto String
let mut name = String::new();
// Pide al usuario que introduzca su nombre (usa println)
// Lee el nombre del usuario
// Imprime el mensaje de saludo
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámicaPractica por tu cuenta: Compilador de Rust online