Функция fmt.Scanf
Функция fmt.Scanf считывает данные из стандартного ввода
(обычно это клавиатура) и сохраняет их в переданные переменные
согласно указанному формату. Первым параметром функция принимает
строку формата, которая описывает ожидаемый формат ввода, а последующими
параметрами - указатели на переменные, в которые будут сохранены
прочитанные значения. Функция возвращает количество успешно
прочитанных значений и ошибку, если она возникла.
Синтаксис
n, err := fmt.Scanf(format, &var1, &var2, ...)
Пример
Давайте прочитаем целое число и строку из стандартного ввода:
package main
import "fmt"
func main() {
var age int
var name string
fmt.Print("Enter age and name: ")
n, err := fmt.Scanf("%d %s", &age, &name)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Read %d values: age=%d, name=%s\n", n, age, name)
}
Результат выполнения кода при вводе 25 Alice:
"Read 2 values: age=25, name=Alice"
Пример
Давайте прочитаем два целых числа и вычислим их сумму:
package main
import "fmt"
func main() {
var a, b int
fmt.Print("Enter two numbers: ")
_, err := fmt.Scanf("%d %d", &a, &b)
if err != nil {
fmt.Println("Error:", err)
return
}
sum := a + b
fmt.Printf("Sum: %d\n", sum)
}
Результат выполнения кода при вводе 10 20:
"Sum: 30"
Пример
Давайте прочитаем число с плавающей точкой и логическое значение:
package main
import "fmt"
func main() {
var pi float64
var flag bool
fmt.Print("Enter pi and flag: ")
_, err := fmt.Scanf("%f %t", &pi, &flag)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Pi: %.2f, Flag: %t\n", pi, flag)
}
Результат выполнения кода при вводе 3.14159 true:
"Pi: 3.14, Flag: true"
Смотрите также
-
функцию
fmt.Scan,
которая читает данные без форматной строки -
функцию
fmt.Scanln,
которая читает данные до символа новой строки -
функцию
fmt.Printf,
которая форматирует вывод в стандартный поток -
функцию
fmt.Sprintf,
которая форматирует строку без вывода на экран