Ввод нескольких значений в Rust
Два целых можно прочитать из одной строки.
Между ними ставят пробел. Строку делят
на куски, и каждый кусок переводят в
i32:
use std::io;
fn main() {
println!("enter two numbers: ");
let mut line = String::new();
let _ = io::stdin().read_line(&mut line);
let line = line.trim();
let mut parts = line.split_whitespace();
let num1 = match parts.next() {
Some(text) => match text.parse::<i32>() {
Ok(n) => n,
Err(_) => 0,
},
None => 0,
};
let num2 = match parts.next() {
Some(text) => match text.parse::<i32>() {
Ok(n) => n,
Err(_) => 0,
},
None => 0,
};
println!("{}", num1 + num2);
}
Те же два числа можно прочитать двумя
вызовами read_line. Второй раз
строку объявляют заново: вызов дописывает
текст в конец, а не заменяет его.
use std::io;
fn main() {
println!("enter number: ");
let mut line = String::new();
let _ = io::stdin().read_line(&mut line);
let num1 = match line.trim().parse::<i32>() {
Ok(n) => n,
Err(_) => 0,
};
println!("enter number: ");
let mut line = String::new();
let _ = io::stdin().read_line(&mut line);
let num2 = match line.trim().parse::<i32>() {
Ok(n) => n,
Err(_) => 0,
};
println!("{}", num1 + num2);
}
Прочитайте два целых и выведите их сумму.
Прочитайте три целых и выведите третье.