Función fmt.Fscanf() en Golang con ejemplos

En el lenguaje Go, el paquete fmt implementa E/S formateadas con funciones análogas a las funciones printf() y scanf() de C. La función fmt.Fscanf() en el lenguaje Go escanea el texto especificado, lo lee de r y luego almacena los valores sucesivos separados por espacios en argumentos sucesivos según lo determine el formato. Aquí las nuevas líneas en la entrada deben coincidir con las nuevas líneas en el formato. Además, esta función está definida en el paquete fmt. Aquí, debe importar el paquete «fmt» para usar estas funciones.

Sintaxis:

func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)

Parámetros: Esta función acepta tres parámetros que se ilustran a continuación:

  • r io.Reader: este parámetro contiene los textos especificados escaneados.
  • string de formato: este parámetro contiene diferentes formatos para recibir los elementos.
  • una …interfaz{}: este parámetro es la variable especificada para cada elemento.

Devoluciones: Devuelve el número de elementos analizados con éxito.

Ejemplo 1:

// Golang program to illustrate the usage of
// fmt.Fscanf() function
  
// Including the main package
package main
  
// Importing fmt, io and strings
import (
    "fmt"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
        // Declaring some type of variables
    var (
        i int
        b bool
        s string
    )
      
    // Calling the NewReader() function to
    // specify some type of texts.
    // variable "r" contains the scanned texts
    r := strings.NewReader("10 false GFG")
      
    // Calling the Fscanf() function to receive 
    // the scanned texts
    n, err := fmt.Fscanf(r, "%d %t %s", &i, &b, &s)
      
    // If the above function returns an error then
    // below statement will be executed
    if err != nil {
        fmt.Fprintf(os.Stderr, "Fscanf: %v\n", err)
    }
      
    // Printing each type of scanned texts
    fmt.Println(i, b, s)
      
    // It returns the number of items 
    // successfully scanned
    fmt.Println(n)
}

Producción:

10 false GFG
3

Ejemplo 2:

// Golang program to illustrate the usage of
// fmt.Fscanf() function
  
// Including the main package
package main
  
// Importing fmt, io and strings
import (
    "fmt"
    "os"
    "strings"
)
  
// Calling main
func main() {
  
        // Declaring some type of variables
    var (
        i int
        b bool
        s string
        f float32
    )
      
    // Calling the NewReader() function to
    // specify some type of texts.
    // variable "r" contains the scanned texts
    r := strings.NewReader("46 true 3.4 GeeksforGeeks")
      
    // Calling the Fscanf() function to receive 
    // the scanned texts
    n, err := fmt.Fscanf(r, "%d %t %g %s", &i, &b, &f, &s)
      
    // If the above function returns an error then
    // below statement will be executed
    if err != nil {
        fmt.Fprintf(os.Stderr, "Fscanf: %v\n", err)
    }
      
    // Printing each type of scanned texts
    fmt.Println(i, b, f, s)
      
    // It returns the number of items 
    // successfully scanned
    fmt.Println(n)
}

Producción:

46 true 3.4 GeeksforGeeks
4

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *