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

Функция fmt.Scan

Функция fmt.Scan используется для чтения данных из стандартного ввода (обычно с клавиатуры). Она сканирует входной поток, разбивая его на поля, разделенные пробелами и переносами строк, и сохраняет эти поля в переданные аргументы. Первым и последующим параметрами функция принимает указатели на переменные, в которые будут записаны считанные значения. Функция возвращает количество успешно считанных значений и ошибку, если она произошла.

Синтаксис

func Scan(a ...any) (n int, err error)

Аргументы передаются как указатели на переменные. Функция автоматически определяет тип переменной и преобразует входные данные в нужный формат.

Пример

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

package main import "fmt" func main() { var age int fmt.Print("Enter your age: ") res, err := fmt.Scan(&age) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Scanned %d value(s), age: %d\n", res, age) }

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

Enter your age: 25 "Scanned 1 value(s), age: 25"

Пример

Считаем несколько значений разных типов за один вызов:

package main import "fmt" func main() { var name string var age int var height float64 fmt.Print("Enter name, age and height: ") res, err := fmt.Scan(&name, &age, &height) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Scanned %d value(s): name=%s, age=%d, height=%.2f\n", res, name, age, height) }

Результат выполнения кода (ввод пользователя: Alice 30 5.8):

Enter name, age and height: Alice 30 5.8 "Scanned 3 value(s): name=Alice, age=30, height=5.80"

Пример

Обработка ошибки при вводе данных неверного типа:

package main import "fmt" func main() { var num int fmt.Print("Enter a number: ") res, err := fmt.Scan(&num) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Successfully scanned %d value(s): %d\n", res, num) }

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

Enter a number: abc "Error: expected integer"

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

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