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

Функция fmt.Scanln

Функция fmt.Scanln считывает данные из стандартного ввода до символа новой строки. Она сканирует текст, разделенный пробелами, и сохраняет значения в переданные аргументы. В отличие от функции fmt.Scan, которая игнорирует символы новой строки, fmt.Scanln останавливает чтение при встрече с \n. Первый параметр функции - это указатели на переменные, в которые будут сохранены считанные значения. Функция возвращает количество успешно считанных элементов и ошибку, если она возникла.

Синтаксис

fmt.Scanln(a ...interface{}) (n int, err error)

Пример

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

package main import "fmt" func main() { var name string var age int fmt.Print("Enter name and age: ") n, err := fmt.Scanln(&name, &age) fmt.Printf("Scanned: %d items\n", n) fmt.Printf("Error: %v\n", err) fmt.Printf("Name: %s, Age: %d\n", name, age) }

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

"Enter name and age: Alice 25" "Scanned: 2 items" "Error: <nil>" "Name: Alice, Age: 25"

Пример

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

package main import "fmt" func main() { var name string var age int fmt.Print("Enter name and age: ") n, err := fmt.Scanln(&name, &age) fmt.Printf("Scanned: %d items\n", n) fmt.Printf("Error: %v\n", err) fmt.Printf("Name: %s, Age: %d\n", name, age) }

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

"Enter name and age: Bob" "Scanned: 1 items" "Error: expected newline" "Name: Bob, Age: 0"

Пример

Давайте используем fmt.Scanln для чтения нескольких строк:

package main import "fmt" func main() { var first string var second string fmt.Print("Enter first line: ") fmt.Scanln(&first) fmt.Print("Enter second line: ") fmt.Scanln(&second) fmt.Printf("First: %s\n", first) fmt.Printf("Second: %s\n", second) }

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

"Enter first line: Hello" "Enter second line: World" "First: Hello" "Second: World"

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

  • функцию fmt.Scan,
    которая сканирует текст, игнорируя символы новой строки
  • функцию fmt.Scanf,
    которая сканирует данные по указанному формату
  • функцию fmt.Println,
    которая выводит данные в стандартный вывод с добавлением новой строки
  • функцию fmt.Print,
    которая выводит данные без добавления новой строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить