Open In App

fmt.Fscan() Function in Golang With Examples

Last Updated : 05 May, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

In Go language, fmt package implements formatted I/O with functions analogous to C’s printf() and scanf() function. The fmt.Fscan() function in Go language scans the specified text, read from r, and then stores the successive space-separated values into successive arguments. Here newlines get counted as space. Moreover, this function is defined under the fmt package. Here, you need to import the “fmt” package in order to use these functions.

Syntax:

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

Parameters: This function accepts two parameters which are illustrated below:

  • r io.Reader: This parameter contains the scanned specified texts.
  • a …interface{}: This parameter receives each type of the specified texts.

Returns: It returns the number of items successfully scanned.

Example 1:




// Golang program to illustrate the usage of
// fmt.Fscan() 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 Fscan() function to receive 
    // the scanned texts
    n, err := fmt.Fscan(r, &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)
}


Output:

10 false GFG
3

Example 2:




// Golang program to illustrate the usage of
// fmt.Fscan() 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 Fscan() function to receive 
    // the scanned texts
    n, err := fmt.Fscan(r, &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)
}


Output:

46 true 3.4 GeeksforGeeks
4


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads