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

Метод lines

Метод lines возвращает итератор, который поочерёдно выдаёт строки из буферизованного источника данных. Каждый элемент итератора имеет тип Result<String, std::io::Error>. Метод не принимает параметров и вызывается на типе, реализующем трейт BufRead, например на BufReader или Stdin.

Синтаксис

bufread.lines()

Пример

Давайте прочитаем строки из буферизованного читателя, созданного на основе байтового среза:

use std::io::BufRead; use std::io::BufReader; fn main() { let data = "abcde\n12345\nxyz"; let reader = BufReader::new(data.as_bytes()); for line in reader.lines() { let line = line.unwrap(); println!("{}", line); } }

Результат выполнения кода:

"abcde" "12345" "xyz"

Пример

Давайте соберём все строки из читателя в вектор при помощи метода collect:

use std::io::BufRead; use std::io::BufReader; fn main() { let data = "abcde\n12345\nxyz"; let reader = BufReader::new(data.as_bytes()); let res: Vec<String> = reader .lines() .map(|l| l.unwrap()) .collect(); println!("{:?}", res); }

Результат выполнения кода:

["abcde", "12345", "xyz"]

Пример

Давайте подсчитаем количество строк в буферизованном читателе:

use std::io::BufRead; use std::io::BufReader; fn main() { let data = "abcde\n12345\nxyz"; let reader = BufReader::new(data.as_bytes()); let res = reader.lines().count(); println!("{}", res); }

Результат выполнения кода:

3

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

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