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

Функция fmt.Fscan

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

Синтаксис

func Fscan(r io.Reader, a ...any) (n int, err error)

Пример с чтением из строки

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

package main import ( "fmt" "strings" ) func main() { input := strings.NewReader("42 100 Golang") var a, b int var s string n, err := fmt.Fscan(input, &a, &b, &s) if err != nil { fmt.Println(err) return } fmt.Printf("Count: %d\n", n) fmt.Printf("a: %d, b: %d, s: %s\n", a, b, s) }

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

"Count: 3" "a: 42, b: 100, s: Golang"

Пример с чтением из файла

Создадим файл с данными и считаем из него значения:

package main import ( "fmt" "os" ) func main() { file, err := os.Open("data.txt") if err != nil { fmt.Println(err) return } defer file.Close() var name string var age int var score float64 n, err := fmt.Fscan(file, &name, &age, &score) if err != nil { fmt.Println(err) return } fmt.Printf("Count: %d\n", n) fmt.Printf("Name: %s, Age: %d, Score: %.2f\n", name, age, score) }

При условии, что в файле data.txt содержится строка "Alice 30 95.5", результат выполнения кода будет:

"Count: 3" "Name: Alice, Age: 30, Score: 95.50"

Пример с обработкой ошибок

Рассмотрим случай, когда данных недостаточно для заполнения переменных:

package main import ( "fmt" "strings" ) func main() { input := strings.NewReader("42") var a, b int n, err := fmt.Fscan(input, &a, &b) if err != nil { fmt.Println("Error:", err) fmt.Println("Read count:", n) return } fmt.Printf("a: %d, b: %d\n", a, b) }

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

"Error: EOF" "Read count: 1"

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

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