Класс Stdin
Stdin - это структура, представляющая дескриптор
стандартного потока ввода (stdin). Она предоставляет
доступ к глобальному буферу ввода программы. Получить
экземпляр Stdin можно с помощью функции std::io::stdin.
Основным методом класса является read_line, который
читает строку из стандартного потока ввода и записывает
её в переданный буфер типа String. Также класс
предоставляет метод lock для получения блокировки
и повышения производительности при множественном чтении.
Синтаксис
use std::io;
let stdin = io::stdin();
stdin.read_line(&mut buffer)?;
Пример
Давайте прочитаем одну строку из стандартного ввода и выведем её на экран:
use std::io;
fn main()
{
let mut buffer = String::new();
let stdin = io::stdin();
println!("Enter a line:");
stdin.read_line(&mut buffer).unwrap();
println!("You entered: {}", buffer.trim());
}
Результат выполнения кода (при вводе строки "abcde"):
Enter a line:
abcde
You entered: abcde
Пример
Давайте прочитаем несколько строк, используя блокировку
через метод lock для повышения производительности:
use std::io;
fn main()
{
let stdin = io::stdin();
let mut lines = Vec::new();
println!("Enter two lines:");
for _ in 0..2 {
let mut buffer = String::new();
stdin.lock().read_line(&mut buffer).unwrap();
lines.push(buffer.trim().to_string());
}
println!("Lines: {:?}", lines);
}
Результат выполнения кода (при вводе строк "abcde" и "12345"):
Enter two lines:
abcde
12345
Lines: ["abcde", "12345"]