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
极客教程