Leer entrada del usuario
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 30 de 75.
Hasta ahora, hemos estado creando programas donde 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 realiza utilizando la biblioteca std::io. Esta biblioteca proporciona métodos para leer diferentes tipos de entrada, como enteros, números de punto flotante y cadenas.
Para usar la biblioteca std::io, primero necesitas 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();El .trim() es necesario 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". El .trim() elimina estos caracteres de espacio en blanco adicionales (espacios, nuevas líneas, etc.) tanto del inicio como del final de la entrada.
No te preocupes demasiado por unwrap() por ahora; aprenderemos sobre ello más tarde. Solo ten en cuenta que nos ayuda a manejar posibles errores de una manera sencilla (aunque no ideal).
Desafío
PrincipianteEscribe un programa que obtenga la entrada del usuario (su nombre) y luego imprima Hello, seguido del nombre ingresado por el usuario y un signo de exclamación.
Por ejemplo, si el usuario ingresa Bob, la salida esperada es Hello, Bob!.
Deberás:
- Crear un objeto
Stringpara leer la entrada. - Solicitar al usuario que ingrese su nombre: "
Enter your name:" - Leer el nombre del usuario utilizando el método
std::ioadecuado. - Imprimir
Hello,seguido del nombre almacenado y un signo de exclamación!al final.
Hoja de referencia
Para obtener la entrada del usuario en Rust, importa la biblioteca std::io:
use std::io;Para leer una entrada de cadena de un usuario:
let mut my_var = String::new();
io::stdin().read_line(&mut my_var).unwrap();Para convertir una entrada de cadena en un número:
let age: i32 = input.trim().parse().unwrap();El método .trim() elimina los caracteres de espacio en blanco (incluyendo los saltos de línea al presionar Enter) de la entrada.
Pruébalo tú mismo
use std::io;
fn main() {
// Crear un objeto String
let mut name = String::new();
// Solicitar al usuario que ingrese su nombre (usar println)
// Leer el nombre del usuario
// Imprimir 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 Fundamentals
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ámica