В программировании на Rust получение пользовательского ввода с клавиатуры или стандартного ввода (стандартный ввод) является общим требованием для многих приложений. В этой статье блога мы рассмотрим несколько методов выполнения этой задачи, используя разговорный язык и попутно предоставляя примеры кода. Итак, давайте углубимся и узнаем о различных способах принятия пользовательского ввода в Rust!
Метод 1: использование функции read_line.
Один простой способ чтения пользовательского ввода — использование функции read_lineиз стандартной библиотеки. Эта функция позволяет вам прочитать строку текста пользователя и сохранить ее в изменяемой переменной String. Вот пример:
use std::io;
fn main() {
let mut input = String::new();
println!("Enter a number:");
io::stdin().read_line(&mut input).expect("Failed to read input");
let number: i32 = input.trim().parse().expect("Invalid input");
println!("You entered: {}", number);
}
Метод 2: использование read_lineс подсказкой
Иногда полезно предоставить пользователю подсказку перед чтением введенных данных. Мы можем добиться этого, создав отдельную функцию, которая принимает приглашение в качестве параметра и использует его для отображения сообщения пользователю. Вот пример:
use std::io;
fn read_number(prompt: &str) -> i32 {
println!("{}", prompt);
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read input");
input.trim().parse().expect("Invalid input")
}
fn main() {
let number = read_number("Please enter a number:");
println!("You entered: {}", number);
}
Метод 3: чтение одного символа
Если вам нужно прочитать только один символ от пользователя, вы можете использовать функцию readиз признака std::io::Read. Этот метод считывает один байт и возвращает его как Result. Вот пример:
use std::io::Read;
fn main() {
println!("Press any key:");
let mut buffer = [0; 1];
std::io::stdin().read_exact(&mut buffer).expect("Failed to read input");
let key = buffer[0] as char;
println!("You pressed: {}", key);
}