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

Функция bufio.NewScanner

Функция bufio.NewScanner создает новый объект Scanner, который используется для построчного чтения данных из входного потока (например, из файла, стандартного ввода или сетевого соединения). В качестве параметра функция принимает интерфейс io.Reader, из которого будут считываться данные. Возвращаемое значение - указатель на структуру Scanner, предоставляющую методы для итеративного чтения данных.

Синтаксис

bufio.NewScanner(r io.Reader) *bufio.Scanner

Пример

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

package main import ( "bufio" "fmt" "os" ) func main() { scanner := bufio.NewScanner(os.Stdin) fmt.Print("Enter text: ") scanner.Scan() text := scanner.Text() fmt.Printf("You entered: %s\n", text) }

Результат выполнения кода при вводе строки "hello world":

"Enter text: hello world" "You entered: hello world"

Пример

Давайте прочитаем все строки из файла с помощью сканера:

package main import ( "bufio" "fmt" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() fmt.Println(line) } if err := scanner.Err(); err != nil { fmt.Println("Error reading file:", err) } }

Результат выполнения кода для файла с тремя строками:

"first line" "second line" "third line"

Пример

Давайте разобьем строку на слова с помощью кастомной функции разбиения:

package main import ( "bufio" "fmt" "strings" ) func main() { data := "one two three four five" scanner := bufio.NewScanner(strings.NewReader(data)) scanner.Split(bufio.ScanWords) for scanner.Scan() { word := scanner.Text() fmt.Println(word) } }

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

"one" "two" "three" "four" "five"

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

  • функцию bufio.NewReader,
    которая создает буферизированный ридер для чтения данных
  • функцию bufio.NewWriter,
    которая создает буферизированный райтер для записи данных
  • функцию bufio.Scanner.Scan,
    которая выполняет чтение следующего токена
  • функцию bufio.Scanner.Text,
    которая возвращает строковое представление прочитанного токена
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить