Fundamentos de Rust

Reading User Input in Rust

Read a line with read_line, trim it and parse it into a number without crashing on bad input.

  • Principiante
  • 2 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • io::stdin().read_line
  • trim and parse
  • Handling bad input with match
From the keyboard to a number
  1. 1read_line"36\n"
  2. 2trim()"36"
  3. 3parse::<u32>()Ok(36)
  4. 4age + 137

Text in, number out

read_line waits for the user to type a line and press Enter, then adds the text to a String. The text always arrives as a string, so numbers must be parsed before you calculate with them.

trim removes the newline that read_line keeps at the end. parse::<u32>() returns Ok with the number or Err when the text is not a number, and match handles both cases. The sample output uses the answers Ada and 36: in the online compiler, type your answers when the prompts appear.

Puntos clave

  1. read_line keeps the newline: call trim.
  2. parse returns Ok(number) or Err.
  3. match handles both cases.

Ejemplo ejecutable de Rust

Rust
Ejecutar código →
main.rs
use std::io;

fn main() {
    println!("What is your name?");
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("failed to read");
    let name = name.trim();

    println!("How old are you?");
    let mut age = String::new();
    io::stdin().read_line(&mut age).expect("failed to read");

    match age.trim().parse::<u32>() {
        Ok(age) => println!("Hello, {name}! Next year you will be {}.", age + 1),
        Err(_) => println!("Hello, {name}! That is not a number."),
    }
}
Obtén un botón Run para este ejemplo Resultado de ejecutar el código
What is your name?
How old are you?
Hello, Ada! Next year you will be 37.

Practica

Abre el ejemplo en el compilador online, cambia un valor o añade una línea y predice la salida antes de ejecutarlo. Después rompe el código a propósito y lee el mensaje del compilador.

¿Terminaste esta lección?

Márcala como aprendida para seguir tu progreso.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos