Метод lock класса Stdin
Метод lock класса Stdin блокирует стандартный
поток ввода и возвращает объект StdinLock, который
реализует типаж BufRead. Блокировка полезна, когда
нужно многократно читать из стандартного ввода: вместо
того чтобы каждый раз захватывать блокировку заново,
мы захватываем её один раз и читаем через полученный
объект. Параметров метод не принимает.
Синтаксис
std::io::stdin().lock()
Пример
Давайте заблокируем стандартный ввод и прочитаем одну строку:
use std::io::BufRead;
fn main()
{
let stdin = std::io::stdin();
let mut handle = stdin.lock();
let mut line = String::new();
handle.read_line(&mut line).unwrap();
println!("{}", line);
}
Результат выполнения кода (при вводе "abcde"):
"abcde"
Пример
Давайте заблокируем ввод один раз и прочитаем
несколько строк подряд через метод lines:
use std::io::BufRead;
fn main()
{
let stdin = std::io::stdin();
let handle = stdin.lock();
for line in handle.lines()
{
let line = line.unwrap();
println!("{}", line);
}
}
Результат выполнения кода (при вводе строк "abcde" и "12345"):
"abcde"
"12345"