Reading User Input in Rust
Read a line with read_line, trim it and parse it into a number without crashing on bad input.
- io::stdin().read_line
- trim and parse
- Handling bad input with match
- 1
read_line"36\n" - 2
trim()"36" - 3
parse::<u32>()Ok(36) - 4
age + 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.
Das Wichtigste
read_linekeeps the newline: call trim.- parse returns
Ok(number)or Err. - match handles both cases.
Ausführbares Rust-Beispiel
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."),
}
}
What is your name?
How old are you?
Hello, Ada! Next year you will be 37.Üben
Lektion fertig?
Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Gültige Zahlen summieren Addiere die Einträge, die ganze Zahlen sind, und überspringe alles andere, so wie try/except mit ungültiger Eingabe umgeht. Einfach
- Absolute Value Without abs Compute an absolute value with a condition. Einfach