Golang fmt.Fscanln()函数及示例

Golang fmt.Fscanln()函数及示例

在Go语言中,fmt包实现了带有类似于C的printf()和scanf()函数的格式化I/O操作。 Go语言中的 fmt.Fscanln() 函数扫描指定的文本从r中读取,然后将连续的以空格分隔的值存储到连续的参数中。这个函数在扫描到一个换行符后停止,并且在最后一个项目之后,必须有一个换行符或EOF。此外,这个函数定义在fmt包中。在这里,您需要引入“fmt”包才能使用这些函数。

语法:

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

参数: 该函数接受两个参数,分别如下所示:

  • r io.Reader: 此参数包含要扫描的指定文本。
  • a …interface{}: 这些参数接受每个指定的元素。

返回值: 它返回成功扫描的项数。

示例1:

//Golang程序演示fmt.Fscanln()函数的用法
  
//包含主包
package main
  
//导入fmt,io和strings
import (
    "fmt"
    "io"
    "strings"
)
  
//调用主函數
func main() {
  
    //声明字符串、整数和浮点值的列表
    s:=`gfg 9`
  
    //调用NewReader()函数读取列表的每个元素,然后将其放入“r”
    r:= strings.NewReader(s)
  
    //声明不同类型的变量
    var a string
    var b int
  
    for{
      
        //调用Fscanln()函数
        n, err:= fmt.Fscanln(r, &a, &b)
  
        //检查返回的错误是不是行结尾(EOF)
        if err==io.EOF{
            break
        }
      
        //检查是否有任何错误
        if err !=nil{
            panic(err)
        }
  
        //打印成功扫描的项目数以及每个元素
        fmt.Printf("%d: %s, %d", n, a, b)
    }
} 

输出:

2: gfg, 9

示例2:

// Golang程序演示fmt.Fscanln()函数的用法
  
// 包含主包
package main
  
// 导入fmt,io和strings
import (
    "fmt"
    "io"
    "strings"
)
  
// 调用main
func main() {
   
    // 声明字符串、整数和浮点值的列表
    s :=`gfg 9 true 5.78`
   
    // 调用NewReader()函数读取列表的每个元素,然后将其放入“r”
    r :=strings.NewReader(s)
   
    // 声明不同类型的变量
    var a string
    var b int
    var c bool
    var d float32
   
    for{
   
        //调用Fscanln()函数
        n, err := fmt.Fscanln(r, &a, &b, &c, &d)
   
        // 检查返回的错误是不是行结尾(EOF)
        if err == io.EOF{
            break
        }
   
        // 检查是否有任何错误
        if err!=nil{
            panic(err)
        }
   
        // 打印成功扫描的项目数以及每个元素
        fmt.Printf("%d: %s, %d, %t, %g", n, a, b, c, d)
    }
} 

输出:

4: gfg, 9, true, 5.78

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程