В программировании на Go пакет fmt предоставляет набор функций для форматирования ввода и вывода. Две важные функции в этом пакете — Scanf() и Printf(), которые позволяют вам читать форматированный ввод и записывать форматированный вывод соответственно. В этой статье мы рассмотрим различные методы использования этих функций на примерах кода.
Метод 1: базовое форматирование ввода и вывода
Самый простой способ использования Scanf() и Printf() — указать строку формата и переменные для чтения или записи. Вот пример:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Printf("Enter your name: ")
fmt.Scanf("%s", &name)
fmt.Printf("Enter your age: ")
fmt.Scanf("%d", &age)
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
}
Метод 2: чтение и запись нескольких значений
Вы можете прочитать или записать несколько значений с помощью одного вызова Scanf() или Printf(). Для этого вам необходимо указать строку формата и предоставить соответствующие переменные. Вот пример:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Scanf("%s %d", &name, &age)
fmt.Printf("Name: %s, Age: %d\n", name, age)
}
Метод 3: спецификаторы форматирования
Пакет fmt поддерживает различные спецификаторы форматирования для разных типов значений. Например, «%d» используется для целых чисел, «%f» для чисел с плавающей запятой и «%s» для строк. Вот пример, демонстрирующий различные спецификаторы форматирования:
package main
import "fmt"
func main() {
var num int = 42
var pi float64 = 3.1416
var name string = "John"
fmt.Printf("Integer: %d\n", num)
fmt.Printf("Float: %f\n", pi)
fmt.Printf("String: %s\n", name)
}
Метод 4: пользовательское форматирование с помощью глаголов
Вы также можете использовать пользовательские глаголы форматирования для управления выходным форматом. Например, «%10d» задает минимальную ширину поля в 10 символов для целого числа. Вот пример:
package main
import "fmt"
func main() {
var num int = 42
fmt.Printf("Formatted: %10d\n", num)
}
Метод 5: обработка ошибок
При использовании Scanf() важно обрабатывать любые потенциальные ошибки. Функция возвращает количество успешно отсканированных элементов, которое можно использовать для проверки правильности форматирования входных данных. Вот пример:
package main
import "fmt"
func main() {
var num int
n, err := fmt.Scanf("%d", &num)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Printf("Scanned %d item(s)\n", n)
}
}
В этой статье мы рассмотрели различные методы использования функций Scanf() и Printf() в Go для форматирования ввода и вывода. Мы рассмотрели базовое форматирование ввода и вывода, чтение и запись нескольких значений, спецификаторы форматирования, пользовательское форматирование с помощью глаголов и обработку ошибок. Освоив эти методы, вы сможете эффективно форматировать ввод и вывод вашей программы в Go.