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

Метод read_line

Метод read_line принадлежит классу Stdin и читает одну строку из стандартного ввода (обычно с клавиатуры), записывая её в переданную изменяемую строку. Параметром метод принимает изменяемую ссылку на строку &mut String, в которую будет записан введённый текст вместе с символом перевода строки. Метод возвращает значение типа Result<usize>, где usize - количество прочитанных байт, а ошибка возникает при неудачном чтении.

Синтаксис

std::io::stdin().read_line(&mut buffer)

Пример

Давайте прочитаем строку, введённую пользователем, и выведем её на экран:

use std::io; fn main() { let mut buffer = String::new(); io::stdin().read_line(&mut buffer).unwrap(); println!("You entered: {}", buffer.trim()); }

Если пользователь введёт "abcde" и нажмёт Enter, результат выполнения кода будет таким:

You entered: abcde

Пример

Давайте посчитаем количество байт, прочитанных методом read_line, и выведем это значение:

use std::io; fn main() { let mut buffer = String::new(); let res = io::stdin().read_line(&mut buffer).unwrap(); println!("Bytes read: {}", res); }

Если пользователь введёт "12345" и нажмёт Enter, результат выполнения кода будет таким:

Bytes read: 6

Пример

Давайте прочитаем несколько строк подряд в цикле и выведем их с нумерацией:

use std::io; fn main() { let mut counter = 0; loop { let mut buffer = String::new(); io::stdin().read_line(&mut buffer).unwrap(); if buffer.trim() == "stop" { break; } counter += 1; println!("{}: {}", counter, buffer.trim()); } }

Если пользователь последовательно введёт "abcde", "12345" и "stop", результат выполнения кода будет таким:

1: abcde 2: 12345

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

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