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

Функция fmt.Sscanln

Функция fmt.Sscanln сканирует данные из строки и сохраняет их в переменные, переданные в качестве аргументов. В отличие от fmt.Sscan, она останавливается на первом символе новой строки (\n) или конце строки. Первым параметром функция принимает строку для сканирования, последующие параметры - указатели на переменные, в которые будут сохранены значения.

Синтаксис

func Sscanln(str string, a ...any) (n int, err error)

Пример

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

package main import "fmt" func main() { str := "10 20 hello" var a, b int var s string n, err := fmt.Sscanln(str, &a, &b, &s) if err != nil { fmt.Println(err) return } fmt.Printf("a=%d, b=%d, s=%s, count=%d", a, b, s, n) }

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

"a=10, b=20, s=hello, count=3"

Пример

Давайте посмотрим, что происходит, когда строка содержит символ новой строки:

package main import "fmt" func main() { str := "10 20\n30 40" var a, b int n, err := fmt.Sscanln(str, &a, &b) if err != nil { fmt.Println(err) return } fmt.Printf("a=%d, b=%d, count=%d", a, b, n) }

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

"a=10, b=20, count=2"

Как видите, функция прочитала только первую строку до символа \n.

Пример

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

package main import "fmt" func main() { str := "10 20 30" var a, b int n, err := fmt.Sscanln(str, &a, &b) if err != nil { fmt.Println(err) return } fmt.Printf("a=%d, b=%d, count=%d", a, b, n) }

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

"expected 2 items but got 3"

Функция вернула ошибку, так как в строке больше значений, чем переменных для сканирования.

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

  • функцию fmt.Sscan,
    которая сканирует всю строку без ограничений по символам
  • функцию fmt.Sscanf,
    которая сканирует строку по заданному формату
  • функцию fmt.Scanln,
    которая читает данные из стандартного ввода до новой строки
  • функцию fmt.Fscanln,
    которая читает данные из любого ввода до новой строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить