РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
786 of 1245 menu

Метод 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"

Смотрите также

  • метод read_line,
    который читает одну строку из стандартного ввода
  • метод lines,
    который возвращает итератор по строкам ввода
  • метод read_line типажа BufRead,
    который читает строку через буферизированный поток
  • структура Stdin,
    которая представляет дескриптор стандартного ввода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить