当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Golang fmt.Fscanf()用法及代码示例


在Go语言中,fmt软件包使用与C的printf()和scanf()函数相似的函数来实现格式化的I /O。 Go语言中的fmt.Fscanf()函数扫描指定的文本,从r中读取,然后将连续的以空格分隔的值存储到由格式确定的连续的参数中。在此,输入中的换行符必须与格式中的换行符匹配。此外,该函数在fmt包下定义。在这里,您需要导入“fmt”包才能使用这些函数。

用法:

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

参数:此函数接受三个参数,如下所示:

  • r io.Reader:此参数包含扫描的指定文本。
  • format string:此参数包含用于接收元素的不同格式。
  • a …interface{}:此参数是每个元素的指定变量。

返回值:它返回成功解析的项目数。

范例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) 
}

输出:

10 false GFG
3

范例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) 
}

输出:

46 true 3.4 GeeksforGeeks
4



相关用法


注:本文由纯净天空筛选整理自Kanchan_Ray大神的英文原创作品 fmt.Fscanf() Function in Golang With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。