使用fmt.Scan函数从输入中读取格式化的数据并赋值给变量

使用fmt.Scan函数从输入中读取格式化的数据并赋值给变量

在Go语言中,常用的输入函数是fmt包提供的Scan函数。这个函数可以从标准输入读取数据,根据指定的格式将读入的数据赋值给变量。使用fmt.Scan函数需要先定义需要读取的变量的类型,并将这些变量的地址传递给Scan函数。这样,在读取数据时,Scan函数就可以将读入的数据存储到这些变量的地址中。

定义需要读取的变量

在使用Scan函数前,需要先定义需要读取的变量。这些变量的类型需要和输入数据的类型对应。例如,如果需要读取一个整数,就需要定义一个整型变量。如果需要读取一个字符串,则需要定义一个字符串变量。

var (

num int

str string

)

调用Scan函数读取数据

定义好需要读取的变量后,就可以调用Scan函数读取输入数据并赋值给这些变量了。在调用Scan函数时,需要将这些变量的地址传递给函数。在读取数据时,Scan函数会根据变量类型进行解析,并将读入的数据存储到这些变量地址所指向的内存中。

fmt.Scan(&num, &str)

格式化输入

在调用Scan函数时,可以通过格式字符串指定输入数据的格式,这样可以更准确地读取输入数据。格式字符串可以包含多个占位符,每个占位符对应一个需要读取的变量。占位符可以指定变量类型和存储格式,以保证读取数据的正确性。

例如,如果需要读取一个整数和一个字符串,可以使用如下的格式字符串:

fmt.Scan("%d %s", &num, &str)

使用Scan函数的注意事项

调用Scan函数时,需要注意以下几点:

每个格式化符号都需要对应一个变量的地址。

如果读取的数据不符合格式字符串中指定的格式,则读取失败。

如果输入的数据中包含换行或空格等分隔符,则需要在格式字符串中指定。

如果输入数据中包含无法识别的字符,Scan函数会自动停止读取,并返回错误信息。

在读取数据时,必须保证输入数据的格式正确,并且输入数据不包含错误的字符。否则,程序可能会出现异常情况。

示例代码

下面是一个使用Scan函数读取整型和字符串的例子:

package main

import (

"fmt"

)

func main() {

var (

num int

str string

)

fmt.Println("请输入一个整数和一个字符串,以空格分隔:")

fmt.Scan("%d %s", &num, &str)

fmt.Printf("num=%d, str=%s\n", num, str)

}

运行上面的代码,输入一个整数和一个字符串,程序会输出输入的整数和字符串:

请输入一个整数和一个字符串,以空格分隔:

123 abc

num=123, str=abc

可以看到,程序正确地读取了输入数据,并将读取到的数据赋值给了num和str变量。

后端开发标签