Golang fmt.Fscanln()函数及示例

Golang fmt.Fscanln()函数及示例

Golang是一门强类型、静态编译语言,其支持多种输入输出方式,其中控制台输入也是其重要组成部分之一。在控制台输入时,经常需要对输入的数据进行解析,这时我们就会用到fmt包中的Fscan系列函数。

fmt.Fscanln()介绍

fmt.Fscanln()函数是fmt包中的一个重要输入函数,用于从标准输入读取多个以空格和换行符分隔的值,并返回读取的值的数量。其中F是表示和文件相关的意思,scan是从输入流(scanner)中读取数据的意思,scanln是从输入流中读取一行数据的意思。

使用示例

下面是fmt.Fscanln()的使用示例代码:

package main

import (
    "fmt"
)

func main() {
    var a, b int
    var c string
    fmt.Println("Please input two integers and a string separated by spaces and hit enter:")
    n, err := fmt.Fscanln(&a, &b, &c)
    if err != nil {
        fmt.Println("Scan error:", err)
    } else {
        fmt.Printf("Scan %d item(s): %d, %d, %s\n", n, a, b, c)
    }
}

在控制台运行上述代码后,会先输出提示语句,让用户输入两个整数和一个字符串,然后将用户输入的数据通过fmt.Fscanln()函数解析之后输出。例如,如果用户输入1 2 hello,则输出结果为:

Please input two integers and a string separated by spaces and hit enter:
1 2 hello
Scan 3 item(s): 1, 2, hello

可以看到,fmt.Fscanln()函数会按照空格和换行符将控制台输入的数据分隔开来,并将其存储在变量中,然后输出结果。

需要注意的是,fmt.Fscanln()函数只能读取一行数据,如果用户输入的数据中有多行,那么只会解析第一行。

错误处理

在使用fmt.Fscanln()函数时,需要注意可能出现的错误情况。例如,用户输入的数据格式不正确,或者输入中包含非数字字符等。

如果出现错误,fmt.Fscanln()函数会返回解析成功的值的数量和错误信息。我们可以通过判断错误信息来进行相应的处理。下面是一个示例代码:

package main

import (
    "fmt"
)

func main() {
    var a, b int
    var c string
    fmt.Println("Please input two integers and a string separated by spaces and hit enter:")
    n, err := fmt.Fscanln(&a, &b, &c)
    if err != nil {
        if err.Error() == "unexpected newline" {
            fmt.Println("Scan error: please input correct format.")
        } else {
            fmt.Println("Scan error:", err)
        }
    } else {
        fmt.Printf("Scan %d item(s): %d, %d, %s\n", n, a, b, c)
    }
}

在这个示例代码中,我们对fmt.Fscanln()函数的错误信息进行了判断。如果出现了“unexpected newline”的错误(即输入数据为空),则输出“please input correct format.”的提示信息,否则输出完整的错误信息。

结论

fmt.Fscanln()函数是Golang中常用的控制台输入函数之一,可以方便地解析多个以空格和换行符分隔的值,并返回读取的值的数量。在使用该函数时,需要注意错误处理的情况,以避免程序出现问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程